【发布时间】:2015-07-28 11:50:58
【问题描述】:
这里的p是一个整数指针,它可以保存int变量的地址,但它也有一个内存地址——存储它的地方。
让
数组基址a = 1002
指针地址p = 2008
当我们写信时:int *p=a; //p points to the base address of array a
和int **r=&p; //means *r points to the address of p
*r如何指向a的地址,应该指向p的地址。
#include <stdio.h>
void main()
{
int a[3] = {1, 2, 3};
int *p =a;
int **r = &p;
printf("%p %p", *r, a);
}
【问题讨论】:
-
为什么不一样?你让
r指向存储p的地址,然后打印*r,那么显然是p,你分配给a -
应该是 int *p = &a;否则是无效的转化
-
@DevangJayachandran:
int [3]衰减为int* -
哦,对了,对不起!我的错。