求助c语言中if后面括号里的简写形式

2025-03-24 22:54:31
推荐回答(5个)
回答(1):

啊?你确定你的if没有错?if(s=b)是判断是否成功的将b赋值给s了,如果是判断s和b是否相等,应该是if(s==b)

改成我的那个形式后,它的执行是这样的:判断s和b是否相等,如果相等,则使s等于原值的平方。
s*=s的执行过程是这样的,cpu从内存中读取s的值到寄存器1中,再读取一次s的值到寄存器2,cpu将两个寄存器中的值相乘后赋值返回给内存中的S。如s*=a,则其过程为:
cpu从内存中读取s的值到寄存器1中,再读取a的值到寄存器2,cpu将两个寄存器中的值相乘后赋值返回给内存中的S
但愿能帮到你

回答(2):

if(s==b) s*=s; // 相等的比较用 == ,两个等号
如果 s 等于 b,则计算 s = s * s
s*=s 就是 新s = 老s * 老s;
程序 输入 a, b
如果 a 等于 b,则 输出 a*a,
如果 a 不等于 b,则 输出 a。

回答(3):

按照您这种写法if(s=b)的解释应该是:如果b赋值于s;会不会是您写错了呢?在C语言中,=是赋值表达式,==才是等于符号喔。如果是写为if(s == b)则可以理解为//如果s等于b ;s*=s等价于s=s*s;

回答(4):

s*=s,意思是如果s = b,s等于原来的s(即a) 乘以b,即a*b

回答(5):

如果s=b的话则执行s*=s