C语言_指针和数组的几种访问形式

敲几行代码来看看几种访问的形式~

#include <stdio.h>;
int
main() { int arr[5] = {0, 1, 2, 3, 4, 5}; //初始化5个元素的一维数组 int *p = arr; //定义一个指向数组arr的指针 ,数组类型不需要引用地址符& printf("arr[2]:%d ", arr[2]); //①:通过下标直接访问 [通过数组名的指针形式访问 ] printf("arr[2]:%d ", *(p+2)); //②:p本身代表一个地址(首地址),p地址本身是第0个,+ 2是第三个地址,然后用*号括起来,取值 printf("arr[2]:%d ", *(arr+2)); //③:因为是数组类型,本身arr是一个首地址,p和arr都是首地址,直接地址+2,然后取值 printf("arr[2]:%d ", p[2]); //④:既然p是首地址,那么也可以当做数组,直接下标访问。[通过指针变量名的数组下标形式访问] //---------分割线 printf("%d ",*p); //输出为0,数组的首元素。 printf("%d ",*arr); //输出为0,数组的首元素。 printf("%d ",p); //输出为地址,数组的地址。 printf("%d ",arr); //输出为地址,数组的地址。 return 0; }

编译运行结果截图如下:

 

原文地址:https://www.cnblogs.com/wt645631686/p/8135925.html