衡水市第三人民医院:一个C语言问题?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 23:09:56
main()
{
int k=5,i;
i=(++k)+(++k);
printf("i=%d",i);
}
我认为这个结果是13 , 但是turbo 2.0 下执行结果为14.
我不知道为什么.

当++写在等式右边时,是一次扫描的,即所有++先执行,这样K进行了两次自加为7,即K的值是一样的.如果你把它写在输出函数中则是你预想的结果

main()
{
int k=5,i;
printf("%d",(++k)+(++k));
}
这样为13

++k;是先加现在运算
i=(++k)+(++k);
程序处理为:
++k;
++k;
i=k+k;
知道为什么=14了吧。

编译时 是先执行了两次++k 之后 才相加的
所以就是 7+7=14