VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: mpc_bywind

讨论个C语言的问题

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-13 17:15:02 | 显示全部楼层
终于有这么一个我很懂的,可是等我来回答时,发现前面这么多的大牛,晚了很多步
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-15 15:30:01 | 显示全部楼层
在具体的操作环境里测试是最好的
回复

使用道具 举报

0

主题

8

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-2-16 14:45:01 | 显示全部楼层
这个问题只与c语言的语法规则有关,而与如何实现无关!
无论在什么c编译器中,其结果都是一样的。否则就不能称之为“语言”了
对于:假设i=2
printf("%d,%d",i,i++);//这种情况显示为:3,2
printf("%d,%d",i,++i);//这种情况显示为:3,3
printf("%d,%d",i++,i);//这种情况显示为:2,3
printf("%d,%d",++i,i);//这种情况显示为:3,3
第一、二个语句的结果是非正常的,估计是你看错了结果!
printf("%d,%d",i,i++);//应该显示为:2,2
printf("%d,%d",i,++i);//应该显示为:2,3
如果不是你看错了,那么你使用的c编译器有问题,请放弃使用

尽管c语言非常灵活,但也没有灵活到连语法规则都可以改变!

对于楼上几位“高手”非要把“错误”解释的合情合理的做法,真是佩服的“五体投地”
回复

使用道具 举报

0

主题

1

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-25 12:02:16 | 显示全部楼层
++在后面,i++值就是i,i然后再加1
回复

使用道具 举报

0

主题

12

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-3-1 20:45:01 | 显示全部楼层
LS的高手说的莫名其妙, C 本来就没定义表达式求值顺序, 当然结果就应该编译器相关 ...
回复

使用道具 举报

0

主题

17

帖子

16.00

积分

新手上路

Rank: 1

积分
16.00
发表于 2020-3-6 17:00:01 | 显示全部楼层
从右向左入栈不等于从右向左计算!!大家还是不要做无用功了。多看看书吧。推荐《C A Reference Manual》。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-13 19:30:01 | 显示全部楼层
难道你非得这样用不可吗?
尽量避免这样的问题就是了.
研究这个,
我觉得,

不值
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-13 21:15:01 | 显示全部楼层
支持楼上跟楼上的楼上
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-20 22:15:01 | 显示全部楼层
i=0

printf("%d,%d",i,i++);//1,0
printf("%d,%d",i,++i);//1,1
printf("%d,%d",i++,i);//0,0
printf("%d,%d",++i,i);//1,0
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-4-17 15:00:01 | 显示全部楼层
这个和编译器有关的哈!不同的编译器结果是不是不一样的。。。c压参是从右到左。。其余的高级语言是从左向右压哈!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表