(*p2) *p1++=*p2++;是什么意思
时间: 2023-07-24 19:58:53 浏览: 155
这段代码的含义是将指针p2指向的字符赋值给指针p1所指向的位置,并且将指针p1和p2分别递增一个字符的大小。
具体步骤如下:
1. (*p2) 表示取指针p2指向的字符的值。
2. *p1++ 表示将取得的字符值赋值给指针p1所指向的位置,并且将指针p1递增一个字符的大小。
这行代码的整体含义是将p2指向的字符值复制到p1所指向的位置,并且移动p1和p2的位置到下一个字符。
相关问题
p1+=+w; ++++p2+=+w+++m+-+1; ++++while+(p1+<+p2)+{ ++++++++s+=+*p1++; ++++++++*p1+=+*p2--;
这段代码是C语言中的表达式和循环语句的组合。让我来解释一下每一行的含义:
1. `p1 += w;` 表示将变量 `p1` 的值加上 `w` 的值,并将结果赋给 `p1`。
2. `p2 += w++ - 1;` 表示将变量 `p2` 的值加上 `w++ - 1` 的值,并将结果赋给 `p2`。其中 `w++` 表示先使用 `w` 的值,然后再将 `w` 的值加 1。
3. `while (p1 < p2) { ... }` 是一个循环语句,表示当 `p1` 的值小于 `p2` 的值时执行循环体内的代码。
4. `s += *p1++;` 表示将变量 `s` 的值加上指针 `p1` 所指向的值,并将结果赋给 `s`。然后将指针 `p1` 向后移动一个位置。
5. `*p1 += *p2--;` 表示将指针 `p1` 所指向的值加上指针 `p2` 所指向的值,并将结果赋给指针 `p1` 所指向的位置。然后将指针 `p2` 向前移动一个位置。
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
```
阅读全文