社区
新手乐园
帖子详情
一个关于自加自减的问题
wsfang
2010-02-26 06:07:56
在同一个编译器里,下面的代码运行后结果不一样,不明白
i = 1;
j = (i++) + (i++) + (i++);
printf("%d\n",j);
i = 1;
printf("%d\n",(i++) + (i++) + (i++));
请高手指教一下。
...全文
174
11
打赏
收藏
一个关于自加自减的问题
在同一个编译器里,下面的代码运行后结果不一样,不明白 i = 1; j = (i++) + (i++) + (i++); printf("%d\n",j); i = 1; printf("%d\n",(i++) + (i++) + (i++)); 请高手指教一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wsfang
2010-03-01
打赏
举报
回复
我用WinTC编译结果是一个3,一个6。。
。。但是在Eclipse里运行结果都是6,不知道楼上的在VC里运行结果是好多,楼上有位在VS2008里运行结果是3,我在看谭浩强的C语言里提到 j=(i++)+(i++)+(i++);j的结果就是3,应该是一致的
不过Java,和c/c++的编译器编译结果竟然不一样。。汗
szqh97
2010-02-27
打赏
举报
回复
又是这种代码啊,不同的编译器不同的啊
「已注销」
2010-02-27
打赏
举报
回复
对于初学者,有些基本语法:如楼主提到的,如果不知编译器如何来处理,就直接加个括号,就OK了。
这种语法没必要深究...
有这些时间多看看数据结构,计算机体系结构,操作系统,数据库之类的很重要基础课程吧...
suanyuan
2010-02-27
打赏
举报
回复
換個編譯器,你的版本太老舊了
katharineyang
2010-02-27
打赏
举报
回复
在VC上运行结果一致。楼上说的很正确,理解++i和i++就可以了的
还有printf("%d\n",(i++) + (i++) + (i++)); 对于编译器来说,i++) + (i++) + (i++)是一种未定义的行为, 所以结果跟编译器有关系。
shashenyidaoOCEAN
2010-02-26
打赏
举报
回复
引用 4 楼 tankdin 的回复:
只有学校里部分脑子有点抽的老师才会抠这些没意义的东西,这完全是浪费时间。
就是
febbird1984
2010-02-26
打赏
举报
回复
记住i++和++i有什么区别就可以了,不同的编译器会有不同的处理方式,工作中写这样的代码就是找抽
tankdin
2010-02-26
打赏
举报
回复
只有学校里部分脑子有点抽的老师才会抠这些没意义的东西,这完全是浪费时间。
CCCCCCCCCCCCCCC
2010-02-26
打赏
举报
回复
未定义行为
stardust20
2010-02-26
打赏
举报
回复
我用vs2008运行两个结果都是3.。这个大概和编译器有关。。
昵称很不好取
2010-02-26
打赏
举报
回复
这样的代码不规范,具体结果依编译器不同而不同
这些代码没有什么意义,楼主不用在此费心力
对于自
加
自
减
的理解
前言: C语言中很多地方都会用自
加
(++)、自
减
(--)运算符来参与一些运算,这也是C语言的主要特色之一, 如果可以掌握并合理的利用这一特性,可以优化我们的C程序。 而自
加
自
减
也是对于刚接触C语言编程的人来说,比较难想通,很容易造成错误,可是考试的卷子也经常出现类似的题目。 自增自
减
的定义 自增++:使变量的值
加
1 自
减
--:使变量的值
减
1 ...
JS 时间
加
减
/ 小时
加
减
JS 时间
加
减
/ 小时
加
减
在实际开发中,有时我们需要对Date对象的时间进行
加
减
操作。最常见的一个原因就是数据库采用了GMT时间来存储,而我们查询本地时会默认
减
去8个小时。在不能改动数据库的情况下,我们只能对Date对象进行
加
减
操作了。 1. 方式一 (参考于百度,原生的有个致命
问题
,已经改良) 我按照百度上的大佬的逻辑,自己写了一个转换器。这个转换器的实现原理就是先将手动传入的字符串转换成为Date对象,随后用getFullYear()获取年份、getMonth()获取月、getDate()获取日,g
C/C++ 自
加
自
减
运算
C/C++ 自
加
自
减
运算 a = a++ + ++a - ++a a = ++a * ++a - ++a
关于自增自
减
运算符的一些
问题
1、作用是使变量的值增1或
减
1。 例如: ++i, --i (在使用i之前,先使i的值
加
(
减
)1) i++, i-- (在使用i之后,使i的值
加
(
减
)1) 其中++i和i++的作用相当于i=i+1。但是++i和i++不同之处在于++i是先执行i=i+1后,再使用i的值;而i++是先使用i的值后,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句: j=++i;
c语言中printf中自
加
自
减
问题
printf("%d %d",b++,++b)类
问题
网上的资料,自己又整合了一下,希望有用。 首先先说下原理: 1 printf函数对于括号内的表达式是从右向左执行,如 printf("%d,%d",b++,++b);先执行 ++b,再执行b++; 2对于++a和a++: ++a是先自
加
,再调用 a++是先调用,再自
加
下面来分析下 代码如下 int b=20; printf("%d,%d",b...
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章