一级指针和多级指针
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] *() 与 []可以相互转换
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论