array[0]+i 和 array[0]+1 怎么理解?

justango 2015-08-23 12:11:06
讲问题简化了一下:主要就是怎么理解array[0]+iarray[0]+1
当加计数i的时候编译器理解成的事偏移;而加常量1的时候又是正常的加法。
源码(GCC 4.8.1):
#include <stdio.h>
#define NUM 5

int main(void)
{
int array[NUM] = {0, 1, 2, 3, 4};

int i = 0;
for (; i < NUM; i++)
printf("%d\t%d\n",array[0]+i,array[0]+1);

return 0;
}

运行结果:
0	1
1 1
2 1
3 1
4 1


...全文
141 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
justango 2015-08-23
  • 打赏
  • 举报
回复
引用 1 楼 ant2012 的回复:
大哥,你在逗我么? i是变量,1是常量 当然会出现这个结果了
散了吧…… a[0] == 0, a[1] == 1…… 原数组值特殊。一直误以为遍历了数组输出的,其实都是i的值。
二班的码农 2015-08-23
  • 打赏
  • 举报
回复
大哥,你在逗我么? i是变量,1是常量 当然会出现这个结果了

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧