关于c语言表达式的值

2025-04-03 17:57:51
推荐回答(4个)
回答1:

这个是运算顺序的问题,第一个i++ 第二个是++i
k=k++;这句话因为++在后面 所以先赋值,后运算,先把k=11赋值 再对k进行+1运算,所以是11 12
k=++k;这句话++在前面,所以先计算++再对k赋值。所以也就是第二个先变成4.2 在对k进行赋值。以上就是出现两种结果的原因

回答2:

表达式从左到右,顺序求值
真个表达式的值是最后一个表达式的左值

回答3:

这就是++在变量前与在变量后的区别了。
若第一题是++k,那么答案就是12,12了。

回答4:

单从执行结果来看,效果是一样的,
但从运行的优先级,来看就不一样了。
k++,是先读出K的值,后+1,最后赋值给变量k
++x,是x先+1,后赋值到变量 x
就比如:
k=10;
if( ++k == 10 ) //已经k已经是11了。
{
    //程序是不会进入这里的。
}
if( k++ == 11 )
{
    //在这里,k已经等于12了。
}