首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

【有关问题】指针输出一维数组元素

2013-09-04 
【问题】指针输出一维数组元素# include stdio.hvoid shuchu(int * p){ int i for (i 0 i 5 ++i)pr

【问题】指针输出一维数组元素
# include <stdio.h>

void shuchu(int * p)
{
 int i;

 for (i = 0; i < 5; ++i)
  printf("%d\n", * (p + i));

}

int main( void )
{
 int a[5] = {2, 4, 6, 8, 10};
 shuchu( a );

 return 0;
}



该代码利用指针输出数组元素。问题是,第8行printf("%d\n", * (p + i));中,*p表示的是a[0]的值,*(p + 1)为什么不是地址+1,而直接是数组下标+1,即为什么不能是printf("%d\n", * (p + i * 4)); ?
C?数组?指针?输出
[解决办法]
指针是什么类型的,那么指针加1的结果是原指针的地址加上sizeof(指针指向的数据类型)


TYPE * p = NULL;
p++;//p = NULL + sizeof(TYPE)

热点排行