文档介绍:: .
试字符串的存储长度;strlen()测试字符串长度,只计算遇
到的第一个\0前面的字符个数。
例:strlen(“abc\089”)=3strlen(“abc\012”)=4
注意这个例题:chara[30]=“abc\0b”;
sizeof(a)=30; sizeof(“abc\0b”)=6;
strlen(a)=3strlen(“abc\0b”)=3;
:记忆书上附录里的运算符优先级(一定要记住常用的)
(1)算术运算符和算术表达式:注意自增++,自减--,自反-,
++,--,当++,--,在变量后面的时候表示在本次运算的时候不会改变,在下次引
用或者参与运算的时候才会自变;当++,--,在变量的前面的时候则是在本次运算就会
发生自变(顺便掌握++,--结合性是右结合,若 i+++j等价于(i++)+j;
(2)关系运算符:>,<,<=,>=,==,!=,==和!=优先级最低。
注意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,
关系运算表达式的值为 0或者 1(关系运算的结果本应是逻辑值,但 C语言中没有逻辑
数据类型,因此用整型数据来表示关系运算的结果)。
(3)逻辑运算符:&&,||,!在这几个中优先级!大于 && 大于 ||,优先级是体现在
结合性上而不是运算的先后性上。例如
a=b=c=1;d=++a||++b&&++c
在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,
即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,
b=1,c=1
(4)赋值运算符:简单赋值运算符“=”其左边必须是变量。一般形式:变量名=表达
式
复合赋值运算符:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。注意当等号
后面接的是表达式的时候要把表达式看成一个整体即 x*=y+8等价于 x=x*(y+8),y+8
是一个整体
(5)条件运算符:由两个符号“?”和“:”构成,
一般形式:表达式 1?表达式 2:表达式 3
先计算表达式 1的值,如果值为真(非 0),则将表达式 2的值作为条件表达式的
值,否则将表达式 3的值作为条件表达式的值。
(6)逗号运算符和逗号表达式
一般形式:表达式 1,表达式 2,……,表达式 n
求值时从左至右依次计算,最后计算表达式 n的值,并将表达式 n的值作为逗号表
达式的值。
例:#include<>
voidmain()
{ inta;
printf(“%d\n”,(a=3*8,a*4,a+5));}该程序的输出结果为 29,变量 a的值为 24,注意此处考察了逗号表达式、逗号和
赋值符号的优先级。=优先级高于,的优先级。
(7)位运算符和位表达式(参考教材 P17-18)
位运算符有 |(或)即只要有一个 1就是 1, &(与)要全部为 1才为 1 ^(异或)
要不相同才为 1;注意的是当向左移动 n位就是乘以 2的 n次方;向右移动 n位就是
除以 2的 n次方。
(8)强制类型转换运算符
强制类型转换的一般形式:(类型名)表达式
表达式(double)(x+y),是将 x+y的值转换为