改成我的那个形式后,它的执行是这样的:判断s和b是否相等,如果相等,则使s等于原值的平方。
s*=s的执行过程是这样的,cpu从内存中读取s的值到寄存器1中,再读取一次s的值到寄存器2,cpu将两个寄存器中的值相乘后赋值返回给内存中的S。如s*=a,则其过程为:
cpu从内存中读取s的值到寄存器1中,再读取a的值到寄存器2,cpu将两个寄存器中的值相乘后赋值返回给内存中的S
但愿能帮到你
结果只有 真:非0 和 假:0 两种,非0不一定就等于1,C语言中,所有不等于0的值都可以是真,C语言没有规定真值具体是几,反正不为0就可以
if(a!=0) 可简写成 if(a)
if(a==0) 可简写成 if(!a)
int b = (a!=0)//这里b应当只会是0 或1 (当然也可以是-1,由编译器确定)
int b = a//这里明显即使b为真也不能判定它就是1或-1 只能用0 非0来描述
只为签到答一题,无聊呀