一条一行的列出要点:指针可以和整数进行加减运算,但是运算规则是比较特殊的。前面介绍过声明指针变量时必须指出它所指的对象是什么类型。这里将看到指针进行加减运算的结果与指针的类型密切相关。比如有指针 p1 和整数 n1,p1+ n1 表示指针 p1 当前所指位置后方第n1 个数的地址,p1- n1 表示指针 p1 当前所指位置前方第 n1 个数的地址。“指针++”或“指针--”表示指针当前所指位置下一个或前一个数据的地址。
时间: 2023-05-21 08:03:48 浏览: 105
答:指针可以和整数进行加减运算,但是运算规则是比较特殊的。指针加上一个整数,其结果是指针向后移动若干个元素,每个元素的大小由指针所指向的数据类型决定;指针减去一个整数,其结果是指针向前移动若干个元素,每个元素的大小由指针所指向的数据类型决定。指针也可以进行自增和自减运算,即“指针++”或“指针--”,分别表示指针向后或向前移动一个元素的距离。
相关问题
列出要点:指针可以和整数进行加减运算,但是运算规则是比较特殊的。前面介绍过声明指针变量时必须指出它所指的对象是什么类型。这里将看到指针进行加减运算的结果与指针的类型密切相关。比如有指针 p1 和整数 n1,p1+ n1 表示指针 p1 当前所指位置后方第n1 个数的地址,p1- n1 表示指针 p1 当前所指位置前方第 n1 个数的地址。“指针++”或“指针--”表示指针当前所指位置下一个或前一个数据的地址。
指针可以和整数进行加减运算,但是运算规则是比较特殊的。指针进行加减运算的结果与指针的类型密切相关。比如有指针 p1 和整数 n1,p1 + n1 表示指针 p1 当前所指位置后方第 n1 个数的地址,p1 - n1 表示指针 p1 当前所指位置前方第 n1 个数的地址。同时,“指针++”或“指针--”表示指针当前所指位置下一个或前一个数据的地址。
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;
}
```
阅读全文