指针变量就是数组名,数组名就是指针变量?这句话对吗

如题所述

不对。
指针变量不单指可以指向某个数组首地址,还可以指向其他。
比如说结构体的首地址,函数的入口地址等等。或者还可以指向数组当中某个元素。
数组名是一个地址,某种意义上等价于指针。而不是指针变量。

指针变量
int *p=0;
p就是一个指针变量。追问

指针变量可以是数组名。数组名是指针。指针变量的范围大

追答

对 这话就对了。 数组名就是他的地址,就是一个指针。
至于指针变量可以成为数组名,不知道你学到没。是对的。
比如说我动态分配内存。
定义一个
int *p=0;
p=(int *)malloc(n*sizeof(int)); //这里用到的是你们将学到的动态分配内存

可以定义一个动态大小的“数组”;
接下来我可以赋值了。
比如说
for(i=0;i<n;i++)
p[i]=i
;
这里P就是一个数组名了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-29

总结论:不对。

原因:

前面的一段话“指针变量就是数组名”,指针变量代表的是一个地址所包含的“引用”,并不仅仅表示一个对数组的有效传递。指针变量可以指向任何一个有效地址,并不仅仅包含对“数组数据空间首地址的‘引用’”,如下所示,指针可以指向这些地址:

    结构体/联合体/类

    函数指针,多级指针

    常量指针

  4.  数组指针,函数栈入口

第2个回答  2012-12-14
如果你研究的是编译器的话,这是对的,否则,这是错的。来自:求助得到的回答
第2个回答  2012-12-14
我感觉不对
int a[10];
int *P;
p=&a[0]; p是指针变量 a是数组名 p存放着a的地址 我感觉 p和a不能完全画等号
相似回答