learn_C_deep_10 深刻认识C语言重点操作符(上)

简介: learn_C_deep_10 深刻认识C语言重点操作符

注释符号


       在C语言中,注释指的是在程序代码中添加的一些说明或标记,这些注释并不会被编译器解析和执行,仅仅是为了帮助程序员更好地理解代码。


C语言中支持两种注释方式:


1. 单行注释:使用“//”符号标记注释内容,从“//”开始到该行结尾处都被视为注释,编译器会忽略这些内容。

例如:


2. 多行注释:使用“/*”和“*/”符号包含多行注释内容,从“/*”开始到“*/”结束的所有内容都被视为注释,编译器会忽略这些内容。

例如:


注释是一种很重要的编程技巧,它可以增强代码的可读性和可维护性,方便其他人或自己在之后修改代码。


#include<stdio.h>
int main()
{
  int /* */ i; //正确
  char* s = "abcd //xyz"; //正确
  //Is it a\
  valid comment? //正确
  in/* */t j; //报错
  return 0;
}


注意:注释被替换,本质是替换成空格。


# 和 define之间是可以带空格的。


1.c语言风格注释无法嵌套

2./*总是与离它最近的*/匹配


其他注释方法


//基于条件编译,代码编译期间处理
#include <stdio.h>
#define MONEY 0
int main()
{
#if MONEY
  printf("for test1\n"); //test1
  printf("for test2\n"); //test2
#endif
  return 0;
}
//基于if判断,代码运行期间处理
#include <stdio.h>
int main()
{
  //if (0)注释方法
  if (0) {
    printf("for test1\n"); //test1
    printf("for test2\n"); //test2
  }
  return 0;
}


注释建议


       复杂的函数中,在分支语句、循环语句结束之后需要适当的注释,方便区分各分支或循环体。


接续符和转义符


       在C语言中,续行符和转义符都是用来对特殊字符进行处理和表示的。它们的作用与用途是不同的,下面我来简单解释一下:


1. 续行符

续行符是用来将一行过长的代码分割成多行的特殊字符,以便于阅读和编写。在C语言中,续行符使用反斜线符号“\”来表示,用在需要跨行的地方的末尾处。

例如:

使用续行符后,上面的代码可以分为三行来编写,其结果和不使用续行符的代码是一样的。


2. 转义符

转义符是用来表示一些特殊字符的符号。在C语言中,转义符使用反斜线符号“\”配合后面的字符来表示,常用的转义符有:


- \n:表示换行符

- \t:表示制表符

- \r:表示回车符

- \0:表示字符串结束标志符


需要注意的是,在字符串中使用引号时,需要使用转义符来表示引号自身,例如:

上面的代码使用了转义符“\”来表示引号自身,因为在字符串中使用引号会引起歧义。


在续行符\之前或者之后带上空格,行不行?



C中,有一些字符,就是他的字面意思,比如'n','b','t'。

也有一些字符,本身就是特殊含义的,比如:" , ', \

转义的本质含义是:字面转特殊,或者特殊转字面。


 在第6行中,出现了一个编译错误,因为在printf函数中缺少一个右括号)。该行代码的目的是要输出一个双引号,但是,由于双引号也是C语言中的特殊字符,因此需要在前面加上一个反斜杠\,来表示它是一个字面量,而不是代码中的引号。


       在第7行中,出现了一个特殊字符转义序列\",它表示输出一个双引号。

       在第8行中,使用了特殊字符转义序列\n,它表示输出一个换行符。

       在第9行中,使用了特殊字符转义序列\t,它表示输出一个制表符。


\n:换行符与\r:回车符之间的区别


       在计算机文本文件中,"\n"代表换行符(Line Feed),通常被译为"新行"。而"\r"代表回车符(Carriage Return),通常被译为"回车"。

在早期的打印机、终端设备中,换行和回车都是必须的操作。当需要让打印头或光标移动到下一行的开头时,需要先执行回车操作,然后再执行换行操作。这种习惯一直延续下来,即"回车+换行"的序列被用作一个行的结束和下一行的开始标志。

       但是在现代的计算机系统中,通常只需要用到换行符。因此,当我们在Windows系统中使用记事本编辑文本文件时,换行符和回车符会被同时输出,但是在其他平台上,如Linux、Mac等,只会输出换行符。

       简单来说,换行符是让光标移到下一行的开头,而回车符是让光标移到本行的开头。但是,现在通常只需要用换行符就可以了。


两个小程序(旋转光标、倒计时)


旋转光标

#include<stdio.h>
#include<windows.h>
#include<string.h>
int main()
{
  int index = 0;
  const char* label = "|/-\\";//由于\是特殊字符,需要转义成字面字符
  //printf("%d\n", strlen(label));//4 - 个字符
  while (1)
  {
    index %= 4;
    printf("[%c]\r", label[index]);
    index++;
    Sleep(1000);
  }
  return 0;
}


  这段代码是一个简单的命令行动画,通过不断地输出字符 "|/-\\" 实现一个不断旋转的动画效果。具体来说:


1. 在 main 函数中定义变量 index,用于表示当前应该输出那个字符;

2. 定义常量指针 label,指向字符数组 "|/-\\",存储了要输出的四个字符;

3. 使用一个 while 循环,不断执行以下操作:

4. 使用取模运算符将 index 的值限制在 0~3 之间,确保 index 不会越界;

5. 使用 printf 函数输出格式化字符串 "[%c]\r",其中 %c 表示要输出的字符,\r 表示将输出的光标移回行首,以便下一次输出覆盖当前输出;

6. 将 index 值加 1,以便下一次循环时输出下一个字符;

7. 使用 Sleep 函数暂停一段时间,以便动画效果更显著;

8. 循环回到第 4 步,继续输出动画。


倒计时

#include<stdio.h>
#include<windows.h>
int main()
{
  int i = 9;
  for (i = 9; i >= 0; i--)
  {
    printf("[%d]\r", i);
    Sleep(1000);
  }
  return 0;
}


这段代码是一个简单的倒计时程序,通过循环输出数字并使用 Sleep 函数暂停一段时间,实现倒计时效果。具体来说:


1. 在 main 函数中定义变量 i 并初始化为 9,用于表示当前的倒计时值;

2. 使用 for 循环从 9 开始倒数,一直到 0;

3. 在循环体中,使用 printf 函数输出格式化字符串 "[%d]\r",其中 %d 表示要输出的数字,\r 表示将输出的光标移回行首,以便下一次输出覆盖当前输出;

4. 使用 Sleep 函数暂停一秒钟,以便倒计时效果更显著;

5. 循环回到第 3 步,输出下一个数字,直到倒计时结束;

6. for 循环结束后,程序返回 0,表示正常结束。


learn_C_deep_10 深刻认识C语言重点操作符(下):https://developer.aliyun.com/article/1424654

相关文章
|
1天前
|
存储 编译器 C语言
C语言---操作符详解(1)
C语言---操作符详解
|
8天前
|
存储 C语言 索引
【C语言基础】:操作符详解(二)
【C语言基础】:操作符详解(二)
|
16天前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
21 3
|
17天前
|
存储 C语言
C语言:详解操作符(下)
C语言:详解操作符(下)
15 3
|
16天前
|
C语言
C语言学习记录——操作符习题、算数转换习题,多解法&优解法&单选题
C语言学习记录——操作符习题、算数转换习题,多解法&优解法&单选题
12 1
|
16天前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
18 1
|
1天前
|
编译器 C语言 C++
C语言---操作符详解(2)
C语言---操作符详解
|
8天前
|
存储 编译器 C语言
【C语言基础】:操作符详解(一)
【C语言基础】:操作符详解(一)
TU^
|
8天前
|
存储 C语言
C语言之操作符
C语言之操作符
TU^
10 0
|
17天前
|
存储 编译器 C语言
C语言:详解操作符(上)
C语言:详解操作符(上)