㈠ c语言中,a=;怎么求的a,求解
a=a+a
int a = 1, b = 2, c = 3;
a = b = c 意思是将 c 的值赋给 b,再赋给 a,a,b,c 都等于3。
a = b == c, = 的优先级低于 ==,会先判断 b == c 结果为假,就是0值,然后将0值赋给 a,也就是执行后,a = 0, b = 2, c = 3。
a == (b=c),会先讲 c 值赋给 b, 然后判断 a 是否等于 b,表达式得到一个0值(a不等于b),但该判断不会影响 a 的值,结果 a = 1, b = 3, c = 3。
a == (b == c) 会先判断 b是否等于c,结果为0,再判断 a 是否等于 0,结果也是0。但该判断不影响a,b,c的值。还是 a = 1, b = 2, c = 3.
㈡ c语言中a=a^b;这个语句是怎么计算的,举个例子说明
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0,
1^0=1,
0^1=1,
1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1
0异或任何数=任何数
1^0=1,1^1=0
1异或任何数-任何数取反
任何数异或自己=把自己置0
(1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。
10100001^00000110=10100111
//1010
0001
^
0x06
=
1010
0001
^
6
(2)通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a,b的值,可通过下列语句实现:
a=10100001,b=00000110
a=a^b;
//a=10100111
b=b^a;
//b=10100001
a=a^b;
//a=00000110
(3)异或运算符的特点是:数a两次异或同一个数b(a=a^b^b)仍然为原值a.
㈢ C语言中,a=(c=5,c+5,c/2);怎么求的a,求解
a=5
1、逗号运算符在括号内,取最右的值,
2、而逗号是个断电,先c=5赋值给a,a参加后面运算c+5=10赋值给a,a参加后面运算10/2=5赋值给a,结束
所以a=5
这个考的是括号和逗号的知识点