时间:2022-11-18 10:10:12 | 栏目:C代码 | 点击:次
C语言中的注释
注意:单行注释不一定被编译器支持
注释的语法
单行注释
多行注释
示例
int main()
{
/*
多行注释
定义一个变量,并且初始化
*/
int i = (int) (10.3 / 3);
printf("i = %d\n", i);
//单行注释
/*
// 多行注释中嵌套单行注释,无意义
*/
return 0;
}
赋值语句
连续赋值
复合赋值
上代码:
#include <stdio.h>
int main()
{
int a = 0;
int b = 10;
a = b = b + 1; // a=>11 b=>11
printf("a = %d, b = %d\n", a, b);
a += 1;
a -= 2;
a *= 3;
a /= 4;
// a => 7
printf("a = %d\n", a);
/*
复合赋值与连续赋值相结合
*/
a += b -= 1;
printf("a = %d, b = %d\n", a, b);
return 0;
}
下面为输出结果:

三目运算符(条件运算符)

注意事项
逗号表达式
下面代码就是采用逗号表达式将多个语句连在一起:
int main()
{
int a = 0;
int b = 1;
a = 2, b = 3, printf("a + b = %d\n", a + b);
return 0;
}
逗号表达式补充说明
下面的代码就是综合逗号表达式和三目运算符:
#include <stdio.h>
int main()
{
int a = 0;
int b = 10;
int c = 0;
a = (b < 10) ? 1 : 2;
printf("a = %d\n", a);
(a < 5) ? (a = 5) : (a = 0);
printf("a = %d\n", a);
/*
((a == 5) ? a : b) = 10; // ERROR
*/
a = b = c = 0;
c = (a = 2, b = 3, a + b);
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("c = %d\n", c);
c -= a; // c = c - a;
printf("c = %d\n", c);
return 0;
}
下面为输出结果:

小结
自增 (++) 与自减 (--) 运算符
前置:先自增(自减),再取值
后置:先取值,再自增(自减)
举一个简单的例子,
v = 1, y = ++v; 执行完之后v = 2, y = 2;
v = 1, y = v++; 执行完之后v = 2, y = 1;
注意事项
上代码:
#include <stdio.h>
int main()
{
int a = 0;
int c = 1;
a = -c++; // c -> 2
printf("a = %d\n", a);
a = +(++c); // +(++c); c -> 3
printf("a = %d\n", a);
a = -c--; // c -> 2
printf("a = %d\n", a);
printf("c = %d\n", c);
return 0;
}
下面为输出结果:

goto - 程序世界中的“破坏者”
goto LABEL;如下所示:
c = 1;
goto LABEL;
c = 2;
LABEL:
printf("c = %d\n",c);
注意事项
上代码:
#include <stdio.h>
int main()
{
int a = 0;
int c = 1;
if( a + c > 0 )
{
printf("a = %d, c = %d\n", a, c);
goto ELSE;
}
else
{
ELSE: printf("%d + %d = %d\n", a, c, a + c);
goto FOR;
}
for(c=10; c>0; c--)
{
FOR:
printf("c = %d\n", c);
}
return 0;
}
下面为输出结果:

可以看到 c 输出为1,这是因为使用 goto 语句后,直接调到 FOR 标签所在的位置,导致了 for 循环没有执行。
小结