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

 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号