在C语言中,指针和数组紧密相关,使用指针算术来操作数组和字符串是一种常见且有效的手段。指针算术基于几个关键原则:指针加一(ptr + 1
)将指向下一个数据元素,而不是下一个字节,这取决于指针所指向的数据类型的大小。
以下是使用指针算术来操作数组和字符串的一些方法:
操作数组
- 遍历数组
通过增加指针的值来遍历数组中的元素。
示例代码:
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr; // 指向数组第一个元素
int size = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < size; ++i) {
printf("%d ", *(ptr + i)); // 使用指针访问数组元素
}
2、修改数组元素
通过解引用加上索引的组合,可以修改数组元素的值。
示例代码:
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr;
ptr[2] = 30; // 修改数组第三个元素的值
操作字符串
- 字符串长度
使用指针算术来计算一个字符串的长度,即到达 null 终止符 '\0' 的距离。