[求助]请问一下指针在程序中的一些概念问题
我是一名C语言初学者,一下问题有些幼稚请高手们勿要见笑。经常看到一些人讨论程序的时候谈到指针在使用的时候要先分配空间,但是我在我看的教程中根本没有提到这个问题,像教程里的这个例程:
#include<stdio.h>
main()
{
int n,a[10],*ptr=a;
for(n=0;n<=9;n++)
scanf("%d",ptr++);
print f("5------output!\n");
ptr=a;
for(n=0;n<=9;n++)
printf("%4d",*ptr++);
printf("\n");
}
它里面指针都是定义了之后就直接使用了,并没有看到有分配地址的语句,而且结果也是正确的,是不是可以忽略这个指针地址分配的问题?
[此贴子已经被作者于2007-7-11 22:16:00编辑过]
----------------解决方案--------------------------------------------------------
实际上它分配地址了的,int n,a[10],*ptr=a;这里的*ptr=a;a实际是代表a[10]的首地址,即&a[0],分开写就是
int *p;
p=&a[0];
----------------解决方案--------------------------------------------------------
也就是说给指针分配地址是指给指针指定所指向的地址,而不是指定指针在内存中占用哪块地址?
看来我之前理解错误了……
谢谢回复了
[此贴子已经被作者于2007-7-11 22:22:30编辑过]
----------------解决方案--------------------------------------------------------
没事,大家互相学习嘛
----------------解决方案--------------------------------------------------------