我正在尝试更改主函数中 a 和 b 的实际值。但是当我使用 *b++ 来增加 b 的值时。它不起作用。
#include<iostream>
using namespace std;
int F(int *b,int *c ){
*b++;
*c++;
}
int main(){
int a=1 , b=2;
cout<<a<<" "<< b<<" ";
F(&a, &b);
cout<<a<<" "<< b;
}
但在第二种情况下,代码运行良好。
#include<iostream>
using namespace std;
int F(int *b,int *c ){
*b = *b+1;
*c = *c+1;
}
int main(){
int a=1 , b=2;
cout<<a<<" "<< b<<" ";
F(&a, &b);
cout<<a<<" "<< b;
}
*b++ 和 *b=*b+1 不是一样吗?
最佳答案
它们不一样,第一个表达式只是操作你的指针,因为 operator precedence .
*b++; // acts like *(b++)
这会递增指针,然后取消引用它。您需要额外的括号
(*b)++;
关于c++ - *b= *b+1 和 *b++ 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60458952/