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

Python018

求助c语言中if后面括号里的简写形式,第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

但愿能帮到你

结果只有 真:非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来描述

只为签到答一题,无聊呀