C 语言中的注释
-注释是帮助理解程序而编写的文本
-注释本身对程序功能无任何贡献
-注释分为单行注释和多行注释
注意:单行注释不一定被编译器支持
注释的语法
- 单行注释
从//开始到当前行结束的所有文本(注释范围只涉及一行文本
单行注释中可以重复出现//(无特殊含义,被看作注释文本)
- 多行注释
从/* 开始到*/结束的所有文本(注释范围可以涉及多行文本
多行注释不支持嵌套(错误用法:/* ... abc . /* d*/.. */)
赋值语句
- 连续赋值
·多个赋值操作组合在一起
如:a=b=c…
- 复合赋值
·数学运算与赋值操作组合在一起
如:
a+=l =a+1
a-=2 =a-2
a*=3 =a*3
a/=4 =a/4
下面的程序输出是什么?为什么?
#include<stdio.h>
int main()
{
int a = 0;
int b = 10;
a = b = b+1; //连续赋值a=b=b+1=10+1=11,即a=b=11
printf("a=%d,b=%d\n",a,b);//打印a,b的数值,a=b=11
a += 1;//a=a+1=11+1=12
a -= 2;//a=a-2=12-1=10
a *= 3;//a=a*3=10*3=30
a /= 4;//a=a/4=30/4=7
printf("a = %d\n", a);//a=7
a += b -= 1;//b-1=11-1=10,a=a+b=10+7=17
printf("a=%d,b=%d\n",a, b);//a=17,b=10
getchar();
return 0;
}
运行结果:
三目运算符(条件运算符)
- 本质 :if ... else .. (选择)语句的缩写版
- 语法:( 条件)?(为真时的语句):( 为假时的语句)
示例:
int a =0; int b = 10; (b<10)?(a=10):(a=100); printf("a = %d\n", a); | 等价 | int a =0; int b = 10: a= 10; |
注意:三目运算表达式最后产生的是一个值,因此整个表达式不能作为左值使用
逗号表达式
逗号(,)是一种特殊的运算符二3
-逗号可以将多个语句连接起来组合成一个语句
- 语法:语句1,语句2,语句3.…,语句n
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= 0;
int c= 0;
c = (a = 2,b = 3,a + b);//c =( a+b = 2+3 = 5 )
printf("a = %d\n",a);//a = 2
printf("b = %d\n",b);//b = 3
printf("c = %d\n",c);//c=5
(c == 0)?(a = -1):(c -= a);//判断c是否为0;是,则a=-1,不是,则c = c-a = 5-2 = 3
printf("c = %d\n",c);//c不等于0,则c = c-a = 5-2 = 3
getchar();
return 0;
}
小结
-注释是帮助理解程序而编写的文本,对程序功能无贡献
-数学运算与赋值操作可以组合在一起使用
-三日运算符可以理解为 if ... else ..的缩写形式
-逗号表达式的意义是将多个语句连接为一个语句