(*p2) *p1++=*p2++;是什么意思
时间: 2023-07-24 17:58:53 浏览: 52
这段代码的含义是将指针p2指向的字符赋值给指针p1所指向的位置,并且将指针p1和p2分别递增一个字符的大小。
具体步骤如下:
1. (*p2) 表示取指针p2指向的字符的值。
2. *p1++ 表示将取得的字符值赋值给指针p1所指向的位置,并且将指针p1递增一个字符的大小。
这行代码的整体含义是将p2指向的字符值复制到p1所指向的位置,并且移动p1和p2的位置到下一个字符。
相关问题
*p1 += *p2++;
*p1 += *p2++ 是一个C语言表达式,它的含义是将指针p1所指向的变量的值与指针p2所指向的变量的值相加,并将结果赋值给p1所指向的变量。同时,指针p2会自增,指向下一个变量。
下面是一个示例代码,演示了*p1 += *p2++ 的用法:
```c
#include <stdio.h>
#define SIZE 5
int main() {
int x[SIZE] = {1, 2, 3, 4, 5};
int y[SIZE] = {6, 7, 8, 9, 10};
int *p1 = x;
int *p2 = y;
for (int i = 0; i < SIZE; i++) {
*p1 += *p2++;
p1++;
}
for (int i = 0; i < SIZE; i++) {
printf("%d ", x[i]);
}
return 0;
}
```
运行结果为:7 9 11 13 15
这段代码将数组x和数组y的对应元素相加,并将结果存储在数组x中。在每次循环中,指针p1和p2分别指向数组x和数组y的当前元素,然后将p2所指向的元素的值加到p1所指向的元素上,并将p2自增,指向下一个元素。最后,打印出数组x的元素,可以看到每个元素都加上了对应的y数组元素的值。
c=*p1;*p1++=*p2--;*p2=c;
这段代码的功能是将指针p1所指向的值赋给变量c,然后将指针p2所指向的值赋给指针p1所指向的位置,并将指针p2向前移动一位,最后将变量c的值赋给指针p2所指向的位置[^1]。
下面是一个示例演示:
```c
#include <stdio.h>
void swap(int *p1, int *p2) {
int c = *p1;
*p1++ = *p2--;
*p2 = c;
}
int main() {
int a = 10;
int b = 20;
int *p1 = &a;
int *p2 = &b;
printf("Before swap: a=%d, b=%d\n", a, b);
swap(p1, p2);
printf("After swap: a=%d, b=%d\n", a, b);
return 0;
}
```
输出结果:
```
Before swap: a=10, b=20
After swap: a=20, b=10
```