注册 登录
编程论坛 C++教室

没有声明的指针怎么也起作用了?

Cubear 发布于 2008-04-04 15:55, 669 次点击
有这么一个程序,在红色部分突然出现了一个指针a,本来一眼可以看出是数组a,但我不懂为什么可以这样做。
呵呵,很简单的一个问题,但我不想敷衍过去,希望有人可以替我解疑,thanks在先啦!
#include<stdio.h>
main()
{
    int a[5];
    int i;
    for (i=0;i<5;i++)
        scanf("%d",&a[i]);
    printf("\n");
    for (i=0;i<5;i++)
        printf("%d",*(a+i));
}
2 回复
#2
zjl1382008-04-04 16:29
"a"代表的是数组第一个元素的内存地址,"a"就相当于&a[0],它的类型是数组元素类型的指针,在这个例子中它的类型就是int* .数组名其实也就是一个指针。
"a+i"//注意这里的表示就是将a数组的起始地址向后进"i"位,移动到第"i+1"个元素的地址上也就是a[0]到a[i]的过程!;在你的程序中*(a+i)==a[i];
#3
Cubear2008-04-04 17:21
回复 2# 的帖子
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
1