请看下面一段代码,是很简单的运算代码,摘自不知道哪位大侠写的C语言面试题中的题目,虽然简单,特别对于初学者来说不小心还是会搞错,我刚开始做的时候就搞错了。
int main()
{
int x,y;
x = 20;y=35;
x = x++ + y++;
y = ++y + ++x;
printf("%d,%d/n",x,y);
return 0;
}
以上代码实现通过计算,将x,y值求出并打印出来。
首先,x,y进行赋值,分别是20,35.计算的过程是这样:理解这段代码需要知道运算符++ 比运算符+优先级高,x++是先运算在进行++的操作,所以对于第5行代码,执行过程为,x+y值为55,然后执行x++和y++这样,x,y的值就分别为56,36。
其次,执行第6行,由于++的优先级比+的优先级高,所以先执行++y和++x,这里需要因为++在变量前是表示先进性自加的意思,所以先对x,y都进行自加,所得出的结果++x,++y为57,37,所以第6行的y值的结果为94。
最后打印出来的结果为57,94
总结:应该要注意的是++和+的优先级,另外自加运算符的使用++x和x++是由区别的,还有最重要一点是在第5行位置是先得出结果再进行++运算的。
如果有错误,请留言指正。