永发信息网

关于 i++和++i在编程中的问题。

答案:3  悬赏:50  手机版
解决时间 2021-12-02 07:34
  • 提问者网友:山高云阔
  • 2021-12-01 15:41
关于 i++和++i在编程中的问题。
最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-12-01 16:32
第一个程序中输出结果应该是 4 3;
printf("%d %d\n",i,i++); 输出语句是从右往左执行的。
i++ 之后i就变为4;i++ 是先引用在自增; 所以是 4 3;
printf("%d %d\n",i,++i); 中 ++i 中i先自增在使用,子增后变为4; 所以是4 4;

循环中 for(i=0;i<=n;i++)和for(i=0;i<=n;++i)没什么太大区别,不过后一个运行时节省空间追问(1)我也认为应该是 4 3 但是我运行输出是 3 3 这也是我问的原因。
(2)请问为什么后一个节省空间?谢谢了!追答i++ 运行时先储存i,然后再进行自增运算,而++i 直接得到自增后的结果
我是用的dev c++。那个结果就是4 3 啊。追问我用的visual C++ 6.0 确实输出 3 3.原来真的是编译器的问题?不过我相信你确实输出了 4 3。
你的意思是++i并不存储i,而是直接做i+1 所以节省了空间对吧?追答是的
全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-12-01 18:21
(1),i++和++i分别是使用i之前加1和使用i之后加1,也就是说、还是举个例吧:
int i=1 ,则i++=1,而++i=2; 了解不??
printf("%d %d\n",i,i++);在编译器中是从右到左计算的

(2).i++和++i在for循环中并无差异都相当于i=i+1;

望采纳~~!!!追问(1)你说的都对 但是C语言书上认为从右到左计算输出结果是 4 3.我也是这么认为的。可是我运行程序后运行结果是3 3.难道说我编译器有问题?
您的答案也很好 但是我觉得2楼回答的更合我的心意!所以这次不能采纳您的回答了。见谅!
谢谢您!
  • 2楼网友:风格不统一
  • 2021-12-01 17:34
++i 是先对 i求++运算,然后使用i的值。而i++正好相反。函数的参数是从右往左算的

i++与++i单独用没区别的,所以第二个没区别
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯