*(a--)=*(a-1)与*a=*(a-1);a--;的区别
时间: 2023-05-15 10:05:29 浏览: 99
*(a--) = *(a-1) 是将 a 指向的元素的值赋给 a 指向的前一个元素,然后将 a 指针向前移动一位。而 *a = *(a-1); a--; 是将 a 指向的前一个元素的值赋给 a 指向的元素,然后将 a 指针向前移动一位。两者的区别在于赋值的顺序不同,前者是先赋值后移动指针,后者是先移动指针后赋值。
相关问题
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
```
python 解方程:w=28.8a-ab-1/3ab; w=28.8a-ab-500*4998-10000*918; w=28.8a-ab-1/4ab-500*4998-(0.75*b-500)*1/12*a*b;
由第一个式子可得:
ab^2 - 3 * 28.8a * b + 3wab - 1 = 0
代入第二个式子中:
(500*4998 + 10000*918 - 28.8a) * b - 3wab + ab^2 - 1 = 0
整理得:
ab^2 - (3 * 10000 * 918 + 3 * 4998 * 500 + 3 * 28.8a) * b + 3wab - 500 * 4998 * 10000 - 1 = 0
同理,代入第三个式子中:
(500*4998 + (0.75*b-500)*1/12*a*b + 28.8a - 1/4ab) * b - 3wab + ab^2 - 500*4998 - (0.75*b-500)*1/12*a*b = 0
整理得:
ab^2 - (3 * 500 * 4998 + (0.75*a - 1/4) * a * b + 3 * 28.8a) * b + 3wab - (500 * 4998 + (0.75*b - 500) * 1/12 * a * b) = 0
以上三个式子构成了一个三元二次方程组,可以使用 Python 中的 numpy 库求解。