📅  最后修改于: 2023-12-03 15:14:25.252000             🧑  作者: Mango
指针是C语言中一个非常重要的概念,因为它可以让我们直接访问内存中的数据,这在一些场景中非常有用。但是,在使用指针时需要注意指针算术的问题,本文将详细介绍指针算术及其示例。
指针算术就是利用指针进行加、减、乘、除等算术运算。指针可以进行以下算术运算:
需要注意的是,指针算术会影响指针所指向的地址,所以需要格外谨慎使用。另外,指针算术只允许在指向同一数组中的指针之间进行。
下面来看一些具体的指针算术的示例。
指针加法可以用来遍历数组,示例代码如下:
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
for(int i = 0; i < 5; i++){
printf("%d ", *p);
p++; // p指向下一个元素
}
输出结果为:
1 2 3 4 5
指针减法可以找到两个指针之间的距离,示例代码如下:
int arr[5] = {1, 2, 3, 4, 5};
int *p1 = arr;
int *p2 = &arr[3];
printf("%d", p2 - p1); // p2和p1之间的距离
输出结果为:
3
指针之间的减法可以计算数组的长度,示例代码如下:
int arr[5] = {1, 2, 3, 4, 5};
int *p1 = arr;
int *p2 = &arr[4];
int len = p2 - p1 + 1; // 数组的长度
printf("%d", len);
输出结果为:
5
指针算术是C语言中非常重要的一个概念,需要格外谨慎使用。指针算术可以进行加、减、乘、除等算术运算,其中指针之间的减法可以计算数组的长度,而指针加法和减法可以用来遍历数组或找到两个指针之间的距离。