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

相关文章
|
3月前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
74 0
|
3月前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
259 0
|
30天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
36 10
|
1月前
|
存储 编译器 C语言
【C语言】简单介绍进制和操作符
【C语言】简单介绍进制和操作符
161 1
|
1月前
|
存储 编译器 C语言
初识C语言5——操作符详解
初识C语言5——操作符详解
179 0
|
3月前
|
C语言
C语言操作符(补充+面试)
C语言操作符(补充+面试)
45 6
|
3月前
|
存储 编译器 C语言
十一:《初学C语言》— 操作符详解(上)
【8月更文挑战第12天】本篇文章讲解了二进制与非二进制的转换;原码反码和补码;移位操作符及位操作符,并附上多个教学代码及代码练习示例
59 0
十一:《初学C语言》—  操作符详解(上)
|
4月前
|
C语言
五:《初学C语言》— 操作符
本篇文章主要讲解了关系操作符和逻辑操作符并附上了多个代码示例
44 1
五:《初学C语言》—  操作符
|
5月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
5月前
|
算法 C语言
【C语言】:巧用移位操作符,位操作符解决问题
【C语言】:巧用移位操作符,位操作符解决问题
35 0