注意事项:
1)自增和自减运算符,只能用于变量,不能用于常量和表达式。例如 5++,--(a+b)等都是非法的。也可用在指针变量中,使指针向上或向下一个
地址。
2)表达式 k=-i++等效于 k=(-i)++还是 k=-(i++),因为负号运算符和自增运算符优先级相同,哪一个正确就得看结合方向。自增、自减运算符及
负号运算符的结合方向是从右向左。因此,上式等效于 k=-(i++);若 i=5,则表达式 k=-i++运算之后 k 的值为-5,i 的值为 6。此赋值表达式的
值即为所赋的值-5。不要因为 k=-i++等效于 k=-(i++)就先做“++”运算!这里采用的是“先用后变”,即先拿出 i 的值做负号“-”运算,把这个
值赋给变量 k 之后变量 i 才自增。
9、下列变量定义和表达式中,正确的是________。
A、int a=1; a+=-a+=a*a;
B、int a=1,b=2; a=7+b=a+7;
C、int a=1,b=2,c=3; a=b==c;
D、int x=y=10;
解析:答案选 C
A、在 C 语言中,赋值运算的结合性是自右向左的,赋值运算符左侧只能是一个变量名,即不可以给一个计算表达式赋值,a+和-a+都是计算表达式。
选项 A 错误。
B、在 C 语言中,赋值运算的结合性是自右向左的,赋值运算符左侧只能是一个变量名,即不可以给一个计算表达式赋值,7+b 是计算表达式。选项
B 错误。
C、选项 C 是将 b==C 的值(为 0)赋给变量 a, a=0,表述正确。选项 C 正确。
D、变量定义时不能连续赋初值,可以写成:int x=10,y=10。选项 D 错误。
10、执行语句 x=(a=3,b=a--);后变量 x,a,b 的值依次为________。
A、3,3,2
B、2,3,2
C、3,2,3
D、2,3,3
解析:答案选 C
11、已知 int i; 以下关于 sizeof 错误的说法是________。
A、sizeof(int) 是合法的 C 语言表达式
B、sizeof int 是合法的 C 语言表达式
C、sizeof i 是合法的 C 语言表达式
D、sizeof 是关键字,sizeof()是运算符
解析:答案选 B
sizeof 是计算变量在内存的占空间的大小,单位是字节。
A、sizeof(int) 是计算基本数据类型 int 的占用空间的大小,单位是字节。选项 A 正确。
B、用 sizeof 计算基本数据类型占用空间的大小时,数据类型必须加上圆括号()。选项 B 错误。
C、sizeof 对变量名或者字面值可以不用括号,但计算类型必须加括号。选项 C 正确。
D、sizeof 是关键字,sizeof()是长度运算符。选项 D 正确。
C 语言中 sizeof 的使用规则:转载自 http://blog.redrose2100.com/article/214
1)使用 sizeof 是计算变量在内存的占空间的大小,单位是字节。请看示例一: