📜  C中的指针算术与示例(1)

📅  最后修改于: 2023-12-03 15:14:25.252000             🧑  作者: Mango

C中的指针算术与示例

指针是C语言中一个非常重要的概念,因为它可以让我们直接访问内存中的数据,这在一些场景中非常有用。但是,在使用指针时需要注意指针算术的问题,本文将详细介绍指针算术及其示例。

指针算术

指针算术就是利用指针进行加、减、乘、除等算术运算。指针可以进行以下算术运算:

  • 指针加法:指针+整数,结果为指针指向地址向后移动整数个单位。
  • 指针减法:指针-整数,结果为指针指向地址向前移动整数个单位。
  • 指针之间的减法:指针1-指针2,结果为指针1和指针2之间的距离,单位为指针类型的大小。

需要注意的是,指针算术会影响指针所指向的地址,所以需要格外谨慎使用。另外,指针算术只允许在指向同一数组中的指针之间进行。

示例

下面来看一些具体的指针算术的示例。

指针加法

指针加法可以用来遍历数组,示例代码如下:

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语言中非常重要的一个概念,需要格外谨慎使用。指针算术可以进行加、减、乘、除等算术运算,其中指针之间的减法可以计算数组的长度,而指针加法和减法可以用来遍历数组或找到两个指针之间的距离。