数组指针的细节

arr参与计算的时候,会退化为第一个元素的指针;

image.png

特殊情况:

sizeof运算的时候,不会退化,arr还是整体;
&arr获取地址的时候,不会退化,步长:数据类型*数组的长度;
image.png

#include "stdio.h"

int main()
{
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    printf("%d\n", sizeof(arr));
    printf("%p\n", arr);
    printf("%p\n", &arr);
    printf("%p\n", arr + 1);//4个字节
    printf("%p\n", &arr + 1);//40个字节
    return 0;

}

输出结果:

40
000000F52D7FF5E8
000000F52D7FF5E8
000000F52D7FF5EC
000000F52D7FF610

总结:

1.什么是数组指针
指向数组的指针,就是数组指针
2.指针数组的细节
arr参与计算的时候,会退化为第一个元素的指针
特殊情况:
sizeof运算的时候,不会退化,arr还是整体;
&arr获取地址的时候,不会退化;步长:数据类型*数据长度


YingLi
6 声望4 粉丝

From zero to hero.