C语言关于i++的问题

[复制链接]
查看11 | 回复5 | 2009-7-16 09:26:55 | 显示全部楼层 |阅读模式
i++是后自增的意思,即i++执行的时间是在语句 printf("num:[%d]\n",num);执行完成之后i再++;如果改为printf("num:[%d]\n",num[++i]);则输出结果就是400.程序的执行时从左到右的,当执行到++i的时候,先执行++,再执行[][],所以num[i++]) = num[0][0][0]);num[++i]) = num[0][1][1]);...
回复

使用道具 举报

千问 | 2009-7-16 09:26:55 | 显示全部楼层
输出结果是num[100]num[i++]=num[0][0][0]=100;i++是先用他的初始值,下一次使用的时候再用自加后的值例如int i=0;printf("%d",i++) 输出结果是0;printf("%d",i) 输入结果是1;所以就是num[100]...
回复

使用道具 举报

千问 | 2009-7-16 09:26:55 | 显示全部楼层
这个是涉及到++i和i++以及[]的优先级的首先要明白的是在num[][][]中遇到i++时候是先取i值,再给num[][][]确定是哪个元素后再进行i++,所以你这个输出时num[0][0][0]的值,是100要弄透这个问题,你还需要再验证下++i的结果。即num[++i]。一位++i是先++再取i的值,所以num[++i...
回复

使用道具 举报

千问 | 2009-7-16 09:26:55 | 显示全部楼层
一种输出结果是:num:[200]num[i++]计算的过程是从左往右先是i=0,第二个i++i=0 第三个i=1num[0][0][1] 另一种是:num[500] num[i++]计算过程从有往左;右边i=0,中间i++i=0 右边i=1num[0][0][1]因为不同平台的原因所以技术的顺...
回复

使用道具 举报

千问 | 2009-7-16 09:26:55 | 显示全部楼层
= =很简单.i++是在执行printf("num:[%d]\n",num[i++]);这条打印语句后才执行的,所以打印出的气势就是num[0][0][0]的值啊,打印完以后i才变成1....
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行