int **p如何使用?
4个回答
展开全部
对于int **p来说,p所指的对象是指针,那么++p就是让p的值增一个指针的大小,虽然指针所指对像可大可小,但是指针自己的大小却是一定的,目前的系统上一般是4字节(或8字节)。也就是说,对char *p和long *q来说,p和q本身占内存容量是一样大的(虽然char和long占内存不一样大)。
一个典型的错例:
int a[2][3];
int **p = a;//错误
这个代码的错误之处在于a是一个数组,它的成员也是数组,所以a叫做“数组的数组”——C++中严格说来没有二维数组。那么,要用一个指针来记录a,就要用一个能表示“数组的数组”的指针,以下代码是正确的:
int (*p)[3] = a;//正确
只有这样才能保证++p使p指向a的下一对像(该对像是一个数组)。
顺便提一句:不要写成“int *p[3];”
一个典型的错例:
int a[2][3];
int **p = a;//错误
这个代码的错误之处在于a是一个数组,它的成员也是数组,所以a叫做“数组的数组”——C++中严格说来没有二维数组。那么,要用一个指针来记录a,就要用一个能表示“数组的数组”的指针,以下代码是正确的:
int (*p)[3] = a;//正确
只有这样才能保证++p使p指向a的下一对像(该对像是一个数组)。
顺便提一句:不要写成“int *p[3];”
展开全部
**p是双重指针,p可以指向其一个指针的地址,即变量里面放数据,指针里面放变量的地址,二级指针放指针的地址。用起来比较灵活……
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
**p是双重指针,p可以指向其一个指针的地址,这样使程序更加灵活
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不就是个二级指针吗。
变量里面放数据,指针里面放变量的地址,二级指针放指针的地址。
变量里面放数据,指针里面放变量的地址,二级指针放指针的地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询