在C语言中,指针和数组之间可以相互转换,因为数组名实际上就是数组的首地址,而指针也可以存储地址。
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 指针指向数组的首地址
printf("%d\n", ptr[2]); // 输出3
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 数组名转为指针
printf("%d\n", *(ptr + 2)); // 输出3
需要注意的是,数组名转为指针后,数组的大小信息会丢失,因此在进行指针与数组之间的转换时需要注意数组的大小和边界。