2017-12-03 136 views
-3
#include <stdio.h> 
#include <stdlib.h> 

int main(void) { 
    int a[6] = {1,2,3,4,5,6}; 
    int *p = &a[6]; 
    printf("%d\n", *p); 
    printf("%d\n", *(p + 1)); 
} 

我想在指针的帮助下打印数组的元素,但它给我一个错误。请通过查看上面的代码来帮助我?如何通过指针打印数组的元素?

+0

什么是6个元素的数组的有效索引?这是什么使&'[6]'? – StoryTeller

+1

您访问[6]并且索引6不存在 –

+0

什么是C中的零索引*? –

回答

2

你需要的东西是这样的:

#include <stdio.h> 
#include <stdlib.h> 

int main(void) { 
    int a[6] = {1,2,3,4,5,6}; 
    int *p = a;// storing base address 
    printf("%d\n", *p); 
    printf("%d\n", *(p + 1)); 
} 
+1

您可能想对'int a [] = {1,2,3,4,5,6};'发表评论''不太容易出错,等等。 –

+0

您能告诉我这个改变的原因吗? –

+0

你正在访问一个[6]的地址,你的数组的范围是从0到5,这是给你垃圾值。 –