首先来看这个代码
int f(int *p)
{
int y=(*p)*2;
(*p)++;
return y;
}
int main()
{
int x=10;
cout<<x+f(&x);
return 0;
}
这个代码输出的是31,感觉似乎f加了一个括号?
那再看看这个代码
int f(int *p)
{
int y=(*p)*2;
(*p)++;
return y;
}
int main()
{
int x=10;
cout<<(x)+f(&x);
return 0;
}
也输出31,怎么回事,括号不管用?
再看看这个代码
int f(int *p)
{
int y=(*p)*2;
(*p)++;
return y;
}
int main()
{
int x=10;
cout<<x+1+f(&x);
return 0;
}
还输出31,怎么回事,难道f没括号?
实际上,单独只写一个x太简单了,不会进行运算,所以就会先进行f的运算,而f实际上是没有括号的
标签:10,main,优先级,cout,int,括号,return,神奇,运算 From: https://www.cnblogs.com/dingxingdi/p/17891998.html