鱼C论坛

 找回密码
 立即注册
查看: 4077|回复: 7

新人学弟,刚学C语言跪求高人指点。

[复制链接]
发表于 2013-8-8 23:40:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人刚看小甲鱼的视频学C语言,遇到不会的了求高人指点!


#include <stdio.h>
void main()
{
      int i = 5,j = 5,p,q;
      p = (i++) + (i++) + (i++);
      q = (++j) + (++j) + (++j);
      printf("%d, %d, %d, %d",p,q,i,j);
}

希望高手可以帮忙讲下输出的结果p,q,i,j为什么等于15,22,8,8.越详细越好!谢谢了!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-9 00:14:49 | 显示全部楼层
++i  先自增1后运算
i++ 先运算后自增1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-9 00:24:25 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-9 00:29:43 | 显示全部楼层

这个我知道啊!++i先增加以再运算
q = (++j) + (++j) + (++j);
不就是6+7+8吗?应该等于21的啊!
为什么等于22来,可以说的细一些吗,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-9 09:50:09 | 显示全部楼层
只有中国的计算机二级才会考这样的题,根本就无解, 这个在Standard C没有规定, 是写编译器的人决定的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-9 10:36:52 | 显示全部楼层
讨论这个没有什么实际意义吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-9 10:47:59 | 显示全部楼层
学弟 发表于 2013-8-9 00:29
这个我知道啊!++i先增加以再运算
q = (++j) + (++j) + (++j);
不就是6+7+8吗?应该等于21的啊!

用VC++6.0编译是这个结果 VC6.0好像是先让(q = (++j) + (++j) + (++j);)  q自加了2次然后在家第三次
q=7+7+8
用vs就是得24 q直接自加三次q=8+8+8
好像是这样 嘿嘿
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-9 23:30:31 | 显示全部楼层
p = (i++) + (i++) + (i++);等于先执行p = 5 + 5 +5;然后执行i自加3次
q = (++j) + (++j) + (++j);等于先执行j自加3次;然后执行q = 8 + 8 + 8;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-16 02:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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