C语言19 指针取值的两种方式

admin 2018年5月13日03:22:56评论594 views字数 688阅读2分17秒阅读模式

一级指针和多级指针

int i =100;  int* p1 = &i;   int** p2 = &p1;   int*** p3 = &p2;   int**** p4 = &p3;   int***** p5 = &p4   int****** p6 = &p5;   int******* p7 = &p6;  int****** px1 = *(p7);  int***** px2 = *(px1);  int**** px3 = *(px2);  int*** px4 = *(px3);  int** px5 = *(px4);  int* px6 = *(px5);  int px7 = *(px6);   int px7 = *(*(*(*(*(*(*(p7))))))); 

*()与[]的互换表示

int* p = (int*)1; printf("%d %d /n",p[0],*p);  //p[0] = *(p+0) = *p    int** p = (int**)1; printf("%d %d /n",p[0][0],**p);   printf("%d %d /n",p[1][2],*(*(p+1)+2));  int*** p = (int***)1; printf("%d %d /n",p[1][2][3],*(*(*(p+1)+2)+3));    同理: *(*(*(*(*(*(*(p7))))))))   = *(*(*(*(*(*(p7+0)+0)+0)+0)+0)+0)  = p7[0][0][0][0][0][0][0] 

总结

*(p+i) = p[i]   *(*(p+i)+k) = p[i][k]   *(*(*(p+i)+k)+m) = p[i][k][m]   *(*(*(*(*(p+i)+k)+m)+w)+t) = p[i][k][m][w][t]   *() 与 []可以相互转换  

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2018年5月13日03:22:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   C语言19 指针取值的两种方式http://cn-sec.com/archives/51514.html

发表评论

匿名网友 填写信息