在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
需要注意的是,数组名转为指针后,数组的大小信息会丢失,因此在进行指针与数组之间的转换时需要注意数组的大小和边界。