c语言指针与一维数组
时间: 2024-10-13 13:01:41 浏览: 71
在C语言中,指针和一维数组密切相关,它们之间有紧密的关系。指针本质上是一个变量,它存储的是内存地址,而这个地址指向数据的开始位置。一维数组可以看作是连续存储的一系列同类型的数据元素。
1. **数组名作为指针**:在C语言中,当你声明一个数组时,它的名字实际上就是一个指向数组第一个元素的指针。例如:
```c
int arr[5]; // arr就是整型数组的首元素的地址
```
`arr`现在是一个`int *`类型的指针,可以直接通过`*arr`访问数组的第一个元素。
2. **数组下标间接操作**:由于数组名是常量指针,你可以通过数组的索引来访问元素,这实际上是通过指针运算完成的。如 `arr[0]` 实际上等价于 `*(arr + 0)` 或者 `*(arr)`。
3. **指针遍历数组**:通过指针递增(`++p`或`p++`),你可以逐个访问数组的所有元素。例如,`for(int i = 0; i < 5; i++) { printf("%d ", *(arr+i)); }`
4. **动态数组**:虽然标准C语言没有内置动态数组的概念,但你可以使用指针来模拟。通过动态分配内存,创建和释放数组,例如`malloc()`和`free()`。
阅读全文