C++ 数组和指针的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:06:04
int a[10];
int *p;
p=*a;//这是什么意思,*都有什么用法,我知道的有乘法,和声明指针时用,还有别的吗?我认为a本身就是地址,*a是什么。?

拜托上面的两位不懂不要乱说……
首先这个写法是错误的
int a[10];
int *p;
p=a;
这样才是正确的
a是a[10]数组的首地址
而*a是指向a[10]数组首地址的指针地址。
在这里是不存在的

a或者&a[0]是地址..

a[0]或者*a表示取出首地址a所指存储单元中的内容
字符串操作的时候a[0]会输出整个字符串..........

p = *a;
意思就是.....我晕了...

p=*a

把a[10]的首地址赋给P

*a是a的首地址

如果是 p=*a 如你写的 则是把a[0]赋给指针变量P 但是这样毫无意义 语法上也不会错 如果是P=a 则是让指针指向数组的首地址 *a就是对a对于的地址取内容 即a[0]

*a 是这个地址里面的值,也就是a[0]的值。

在这里p也是地址了,p=*a,意思是吧*a里面存放的值,作为p的地址。

p=*a;这的确不对。joji789说的正确