黑马程序员技术交流社区

标题: 关于指针数组 [打印本页]

作者: aSmallStone    时间: 2015-5-16 10:26
标题: 关于指针数组
int a=1,b=2,c=3;
int *pa[3]={&a,&b,&c};
我知道pa[0]=&a
pa=&pa[0]
为什么**pa=1

作者: 香草芭芙    时间: 2015-5-16 10:50
  1. #include <stdio.h>

  2. int main(int argc, const char * argv[])
  3. {
  4.     int a = 1, b = 2, c = 3;
  5.     int * pa[3] = { &a, &b, &c };

  6.     //        我知道pa[0] = &a; pa = &pa[0]
  7.     //         为什么 ** pa = 1

  8.     // 1. **pa == *(*pa)

  9.     // 2. *pa == pa[0] == &a

  10.     // 3. **pa == *(&a) == a;

  11.     // 4. **pa == a == 1;

  12.     printf("%d\n", *(*pa));
  13.    
  14.     return 0;
  15. }
复制代码

作者: 小小黑马很成器    时间: 2015-5-16 12:48
*pa就是取出指针pa所指向的内存中的变量,而 pa=&pa[0],即*pa=&a;同理  *(*pa)取出*pa所指向的内存中的变量,即为1。小的才疏学浅,希望可以帮助你理解
作者: 15578797612    时间: 2015-5-16 13:19
我简单说说看你能不能理解,pa = &pa[0], *pa = pa[0] = &a ,*pa = &a , 那**pa = a




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2