C语言int/float混合运算顺序及变量取值规则咨询
C语言变量取值与语句执行顺序说明
C语言代码默认按从上到下的顺序逐行执行,普通变量在任意时刻保存的值,都是距离当前代码位置最近一次给它赋值完成后的结果,只要中途被重新赋过值,初始值就会被覆盖,后续语句不会再读到原来的初始值。
对应你遇到的代码场景,逐行的取值逻辑是:
- 执行声明初始化语句
int num1 = -2;时,系统给num1开辟对应存储空间,存入初始值-2,这一步跑完num1的值就是-2 - 执行赋值语句
num1 = num1 + num2 * num2;时,等号右边的所有变量都取这行执行前的当前值参与运算(这时候num1还是初始的-2,num2取它之前已经被赋好的值),等号右边算完结果后,会直接覆盖num1原来存的-2,这行执行完,num1里存的就是刚算出来的新值 - 再往后执行
num4 = num1 * num3;的时候,读取的num1自然是上一步已经更新完的新值,不可能再跳回去用最开始声明时的初始值计算。
对应作业题目参考:
内容的提问来源于stack exchange,提问作者user19403524
相关产品推荐
相关产品推荐

