C语言--指针数组和数组指针

蔚落 2022-07-15 02:09 404阅读 0赞
  1. <pre name="code" class="cpp">#include <stdio.h>
  2. //指针数组
  3. int main(int argc, const char *argv[])
  4. {
  5. int a = 10;
  6. int b = 20;
  7. int c[5] = {0,1,2,3,4};
  8. //指针数组,本质是数组,元素是指针类型
  9. //申明一个大小为3的指针数组
  10. int *p[3];
  11. p[0] = &a; //给第一个元素赋值变量a的地址
  12. p[1] = &b; //给第二个元素赋值变量a的地址
  13. p[2] = &c[1];//给第三个元素赋值数组c的第二个元素的地址
  14. printf("a = %d\n",a); //10
  15. printf("*p[0] = %d\n",*p[0]);//获取指针数组第1个元素的值(内存地址) 并获取该内存地址对应的值 10
  16. printf("b = %d\n",b);//20
  17. printf("*p[1] = %d\n",*p[1]);//获取指针数组第1个元素的值(内存地址) 并获取该内存地址对应的值 20
  18. printf("*c[3] = %d\n",c[3]); //数组变量C向前移动三个单位 并取值 3
  19. printf("*(p[2]+2) = %d\n",*(p[2]+2));//指针数组向前移动2个单位并取值(该值为内存地址),再向前移动两个单位 取值 3
  20. printf("p[2][2] = %d\n",p[2][2]); //同上 3
  21. return 0;
  22. }
  23. #include <stdio.h>
  24. //数组指针
  25. int main(int argc, const char *argv[])
  26. {
  27. int a[3][4] = {
  28. {0,1,2,3},
  29. {4,5,6,7},
  30. {8,9,10,11}};
  31. //定义一个数组指针,并赋值
  32. int (*p)[4] = a;
  33. //以数组变量来取值
  34. printf("%d\n",a[1][2]);
  35. printf("%d\n",*(a[1]+2));
  36. printf("%d\n",*(*(a+1)+2));
  37. //以指针变量来取值
  38. printf("%d\n",p[1][2]);
  39. printf("%d\n",*(p[1]+2));
  40. printf("%d\n",*(*(p+1)+2));
  41. // int b[4] = {10,11,12,13};
  42. // p = &b; //也可以指向一维数组
  43. return 0;
  44. }

发表评论

表情:
评论列表 (有 0 条评论,404人围观)

还没有评论,来说两句吧...

相关阅读