社区
C语言
帖子详情
printf("%d %d\n", i++, i++);正确的显示应该是什么?
youyilu3
2012-10-30 11:16:50
int i = 1;
printf("%d %d\n", i++, i++);
vs编译器默认的是/RTCsu,显示是2 1
设置为Default时,显示是1 1
有人知道为什么吗?
...全文
692
7
打赏
收藏
printf("%d %d\n", i++, i++);正确的显示应该是什么?
int i = 1; printf("%d%d\n", i++, i++); vs编译器默认的是/RTCsu,显示是21 设置为Default时,显示是11 有人知道为什么吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
debugeeker
2012-10-31
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 3 楼 的回复:
标准月经贴,在一个表达式中。两次都同一个变量操作是未定义行为。。。
不同编译器可以做不同的实现,不仅是vs的编译器给你不同的结果,其他给出不同结果都是可以的》。。
标准中有这方面的说明是吗?
本人学c的时候用的是谭浩强的书,好像没提到过
[/Quote]
你到老谭家索赔吧,出这种书误人子弟。学C、C++多看一下英文的教材和编程规范。
这种就像抠“回”字有四种写法的行为,就没必要了,很浪费时间的。
youyilu3
2012-10-30
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
标准月经贴,在一个表达式中。两次都同一个变量操作是未定义行为。。。
不同编译器可以做不同的实现,不仅是vs的编译器给你不同的结果,其他给出不同结果都是可以的》。。
[/Quote]
标准中有这方面的说明是吗?
本人学c的时候用的是谭浩强的书,好像没提到过
lin5161678
2012-10-30
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
标准月经贴,在一个表达式中。两次都同一个变量操作是未定义行为。。。
不同编译器可以做不同的实现,不仅是vs的编译器给你不同的结果,其他给出不同结果都是可以的》。。
那printf("%d %d\n", ++i, ++i);也是未定义的吗?
[/Quote]
是的 都是未定义
youyilu3
2012-10-30
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
标准月经贴,在一个表达式中。两次都同一个变量操作是未定义行为。。。
不同编译器可以做不同的实现,不仅是vs的编译器给你不同的结果,其他给出不同结果都是可以的》。。
[/Quote]
那printf("%d %d\n", ++i, ++i);也是未定义的吗?
Qyee16
2012-10-30
打赏
举报
回复
标准月经贴,在一个表达式中。两次都同一个变量操作是未定义行为。。。
不同编译器可以做不同的实现,不仅是vs的编译器给你不同的结果,其他给出不同结果都是可以的》。。
珍惜生命远离CPP
2012-10-30
打赏
举报
回复
代码就是错的
JiMoKuangXiangQu
2012-10-30
打赏
举报
回复
这已经第无数次发这样的帖了.
不用纠结,取决于实现细节.
永远也不要写这样的代码.
C语言之sizeof详解 eg: int i = 10;
printf
("sizeof(i
++
) is: %d\n",sizeof(
++
i));
#include #include int main() { int i; i = 10;
printf
("i : %d\n",i);
printf
("sizeof(i
++
) is: %d\n",sizeof(
++
i));
printf
("i : %d\n",i); return 0; } 结果: i : 10 sizeof
C语言 计算1+1/2+1/3+…+1/n的值
方法一: #include <stdio.h> void main(){ int i,n; float sum=0;
printf
("请输入一个值:"); scanf("%d",&n); for(i =1;i<= n;i
++
){ sum += 1.0 / i; }
printf
("%f",sum); } 方法二:函数调用 #include <stdio.h> float sum(int n){ int i; float sum.
printf
("%d",5.01)和
printf
("%f",5)的输出结果
printf
("%f\n",5);
printf
("%d\n",5.01);
printf
("%f\n", (float)5);
printf
("%f\n", 5.f); 输出结果: 看到结果,会感觉非常奇怪。1处怎么会输出0呢?2又为何会
显示
这么大的一个数呢? 解释: 下面是转自网上的一篇博客的解释 1,之所以没输出5,这是C语言设计的原因。
你真的理解了C语言
++
和--运算符么?
这个主题对于刚开始学习C语言时可能会觉得很简单啊,那好你告诉我下面几个题目的输出是什么,你要是能说对,并且说出为什么,那你就可以不用往下看了 int i = 0,j = 0; 1、j = (i
++
)+(i
++
)+(i
++
); //而不是j = i
++
i
++
i
++
; 2、j = (
++
i)+(
++
i)+(
++
i); //而不是j =
++
i
++
i+...
【第02题】给定 n,求 1 + 2 + 3 + ... + n 的和 | 四种解法
难度:★☆☆☆☆,四种解法,求解1+2+3+...n的和~
C语言
70,024
社区成员
243,260
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章