展开全部
指针数组的数组名就是该指针数组首元素的地址的别名。
比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。
指针数组就比如这个例子:int *p[10] 那么p等价于&p[0]
因为指针里面存储的是地址(十六进制数),所以&p[0]这里面存放着一个int变量的地址。
是不是觉得用地址来存放地址有点想不通,下面举一个简单的例子:
比如 int *p[10]; 可以把&p[0]看成一张记录着地址的纸,那么根据这张纸的地址找到某个仓库,在仓库里面又放着记录着一个int变量地址的纸,又根据这个地址找到了存放int变量的仓库,在这个仓库里面放着int的值,其实就想寻宝一样,根据一关一关的线索找到指定的宝藏。
比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。
指针数组就比如这个例子:int *p[10] 那么p等价于&p[0]
因为指针里面存储的是地址(十六进制数),所以&p[0]这里面存放着一个int变量的地址。
是不是觉得用地址来存放地址有点想不通,下面举一个简单的例子:
比如 int *p[10]; 可以把&p[0]看成一张记录着地址的纸,那么根据这张纸的地址找到某个仓库,在仓库里面又放着记录着一个int变量地址的纸,又根据这个地址找到了存放int变量的仓库,在这个仓库里面放着int的值,其实就想寻宝一样,根据一关一关的线索找到指定的宝藏。
展开全部
.数组和指针的区别:
数组名确实表示指向数组首地址的指针,但这个指针很特别,它的值(指针的值指的是指针所指的地址)不能被改写,能改写的仅仅是其指向的内容,换句话说,数组名只能指向数组的首地址,如果有数组char a[];那么如果出现a = a+1;这是编译都通不过的错误。而对于一个普通的指针是可以的,再比如有数组char a[];那么再定义一个char *p = a;然后再用p = p+1是合法的,这表示让指针p指向&a[1]。
它们的第二个区别是:每当用到数组名这个指针的时候,系统都会传入数组的信息,而普通的指针只是一个4字节的整数,例如:
char a[5];
char *p = a;//指针a和指针p都指向数组a的首地址
cout << sizeof (a) << "##" << sizeof (p) << endl;
这时的运行结果是“5##4”
数组名确实表示指向数组首地址的指针,但这个指针很特别,它的值(指针的值指的是指针所指的地址)不能被改写,能改写的仅仅是其指向的内容,换句话说,数组名只能指向数组的首地址,如果有数组char a[];那么如果出现a = a+1;这是编译都通不过的错误。而对于一个普通的指针是可以的,再比如有数组char a[];那么再定义一个char *p = a;然后再用p = p+1是合法的,这表示让指针p指向&a[1]。
它们的第二个区别是:每当用到数组名这个指针的时候,系统都会传入数组的信息,而普通的指针只是一个4字节的整数,例如:
char a[5];
char *p = a;//指针a和指针p都指向数组a的首地址
cout << sizeof (a) << "##" << sizeof (p) << endl;
这时的运行结果是“5##4”
追问
谢谢!认真看了你的话学到了很多。但我开始想问的是指针数组,比如:char *suit[2]={"heart""diamond"}; 进行函数运算:deal(deck,face,suit);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针数组的数组名就是该指针数组首元素的地址的别名。
比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。
指针数组就比如这个例子:int
*p[10]
那么p等价于&p[0]
因为指针里面存储的是地址(十六进制数),所以&p[0]这里面存放着一个int变量的地址。
是不是觉得用地址来存放地址有点想不通,下面举一个简单的例子:
比如
int
*p[10];
可以把&p[0]看成一张记录着地址的纸,那么根据这张纸的地址找到某个仓库,在仓库里面又放着记录着一个int变量地址的纸,又根据这个地址找到了存放int变量的仓库,在这个仓库里面放着int的值,其实就想寻宝一样,根据一关一关的线索找到指定的宝藏。
比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。
指针数组就比如这个例子:int
*p[10]
那么p等价于&p[0]
因为指针里面存储的是地址(十六进制数),所以&p[0]这里面存放着一个int变量的地址。
是不是觉得用地址来存放地址有点想不通,下面举一个简单的例子:
比如
int
*p[10];
可以把&p[0]看成一张记录着地址的纸,那么根据这张纸的地址找到某个仓库,在仓库里面又放着记录着一个int变量地址的纸,又根据这个地址找到了存放int变量的仓库,在这个仓库里面放着int的值,其实就想寻宝一样,根据一关一关的线索找到指定的宝藏。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询