c语言中.a=++a,这样赋值正确吗
时间: 2023-05-28 16:01:10 浏览: 54
这种赋值是错误的,因为双等号(==)才是比较相等的操作符,而单等号(=)是赋值操作符。所以这个语句相当于把变量a的值赋给变量a本身,即没有任何作用。如果要比较a和另一个变量的值是否相等,应该使用双等号(==)操作符,例如 a == b。
相关问题
c语言中.a=b++=10 ,这样赋值正确吗
如果a和b都是整型变量,那么语句"a=b=10"是正确的,它将变量b的值设为10,然后将a的值也设为10。这种赋值操作是连锁赋值,其作用相当于执行两个赋值操作"a=10"和"b=10"。如果a和b是不同类型的变量,或者其中至少有一个是常量,那么这个语句就会出现编译错误。
c语言中,有以下定义语句double a,b;int w long C; 若各变量已正确赋值,则下列选项中正确的表达式是______ 。 A.a=a+b=b++ B.w%((int)a+b)) C.(c+w)%(int)a D.w=a==b;
正确的表达式是 C.(c+w)%(int)a。
原因如下:
A. a = a + b 表示将 a 和 b 的值相加后赋值给 a,b++ 表示将 b 的值加 1,但表达式的值还是原来的 b 值,因此 A 不正确。
B. (int)a + b 表示将 a 强制转换为整型后再与 b 相加,% 表示取模运算,w 与 (int)a + b 的余数不一定是正确的,因此 B 不正确。
C. c + w 表示将 c 和 w 的值相加,(int)a 表示将 a 转换为整型后,将 c + w 的结果对 (int)a 取模,这个表达式是正确的。
D. a == b 表示判断 a 和 b 是否相等,返回一个布尔值,将布尔值赋值给整型变量 w 不正确。