问一下有关C++的问题 I++ ++I的

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:45:05
设I=3 C==I++ B=++I

我是这样理解的 大家伙帮忙分析一下看看思路有没有问题
I++ 就是先对I赋值 然后再 +1接着传给其他的量 3+1=4
++I 就是先自己+1然后再加I =1+3=4

大家分析一下 看看对么 我理解的不好
i+=i++;
中“+=”是赋值运算符。
i+=i++;等同于
i=i+i++;
而i=3;
所以i=6 //注释:6=3+3++即3+3

这一步不太明白
i+=i++; 6=3+3++即3+3
不是首先要对 I赋值然后做一个+1的运算么 4+4=3+1
我不能理解啊 你在 想想看 怎么能说的在明白一点好么

按照我这样的理解可能会好些
首先++是一中自操作运算符
然后++i,和i++都是表达式,表达式自然会返回值,++i返回的是i+1,而i++返回的是i;
于此同时都执行了i=i+1的操作。
i+=i++; 最终i=7;按照首先求i++,计算出表达式i++的值为3,i本身的值为4,接下来相当于做了i=4;i=i+3;故最终i=7

i+=++i;最终i=8;按照首先求++i,计算出表达式++i的值为4,i本身的值为4,接下来相当于做了i=4;i=i+4;故最终i=8

楼主对基础的表达式求值应该去详细的学习一下

I=3 C==I++ B=++I
C=3,然后I就++ 所以I=4,然后I就++所以B=5,然后I=5

垃圾教材真是害死人,整天叫人纠结在这种无聊问题上。
这种问题在不同的编译器上的运行结果都不一定相同,实际做软件时这也是应该避免的情况。

你自己的理解是对的!
以下,对你的补充问题进行回答:

i+=i++;
中“+=”是赋值运算符。
i+=i++;等同于
i=i+i++;
而i=3;
所以i=6 //注释:6=3+3++即3+3

同样的,i+=++i;也可以写成:
i=i+(++i);
因为i=3;
所以 i=7 // 7=3+(++3)即3+4

回答完毕,希望我的回答令你满意。

补充:“以下:
i+=i++;等同于
i=i+i++;

你是理解的对吧?
这个当中的i++ 的值是3,++i的值是4
到i++这里时,是先调用它原来3这个值,调过,再给i这个变量自增1.