C语言中指针的运算+指针加减整数+指针相互加减减+指针关系运算
时间: 2023-11-23 13:58:05 浏览: 114
c语言关于指针
C语言中指针的运算、指针加减整数、指针相互加减减、指针关系运算的介绍如下:
1. 指针的运算
指针的运算包括指针加减整数、指针相互加减减、指针关系运算等。指针加减整数是指将指针加上或减去一个整数,得到一个新的指针。指针相互加减减是指将两个指针相加、相减或相减后再加上一个整数,得到一个新的指针。指针关系运算是指比较两个指针的大小关系。
2. 指针加减整数
指针加减整数的结果是一个新的指针,新指针指向原指针所指向的地址加上或减去整数个字节的地址。例如,int* p = arr; p+1表示p指向的地址加上4个字节,指向arr的地址。
3. 指针相互加减减
指针相互加减减是指将两个指针相加、相减或相减后再加上一个整数,得到一个新的指针。例如,p1-p2表示p1和p2之间的距离,结果是一个ptrdiff_t类型的整数。
4. 指针关系运算
指针关系运算包括大于、小于、等于、不等于等运算符。两个指针之间的大小关系取决于它们所指向的地址的大小关系。如果两个指针指向同一个数组中的元素,那么它们之间的大小关系取决于它们所指向的元素的下标。
示例代码如下:
```c
#include <stdio.h>
int main() {
int arr[10] = {0};
int *p = arr;
char *pa = arr;
int i = 0;
for (i = 0; i < 10; i++) {
*(p + i) = 1; // 每次访问1个整形
*(pa + i) = 1; // 每次访问1个字节
}
int *p1 = arr;
int *p2 = &arr[5];
printf("p1 < p2: %d\n", p1 < p2); // 输出:1
printf("p1 > p2: %d\n", p1 > p2); // 输出:0
printf("p2 - p1: %d\n", p2 - p1); // 输出:5
return 0;
}
```
阅读全文