c程序基础问题。关于++运算符和指针的。请高手解释下。

2024-11-16 01:54:39
推荐回答(1个)
回答1:

跟下面这个道理一样

main()
{int x=10,y=x++;
printf("%d,%d",(x++,y),y++);
}
输出结果是:—————。
答案是:11,10 语句 y=x++;等价于这二个语句:y=x;x++;所以现在y的值是和x一样,10;再就没有x的事了,就不管它了.printf函数虽然输出的时候顺序是从左到右,可是计算里面的参数是从右到左的,这是大部份人都没有注意的.所以先算表达式y++的值也是y的值10,运算完y自动加1,就是11了;算完后(x++,y)是个逗号表达式,就是y的值,现在y是11.输出的时候就是11,10

先计算最右边*(++p)即先p=p+1,再求*p得到3,
再计算*(p++)即先计算*p即3,再p=p+1,现在p指向了5
最后计算第一项*p即得到了5
所以输出结果是从左到右即5,3,3