#include
#include
func(int a, int b)
{
return a = a + b, a % b;
}
int main()
{
int x = 9, y = 7, z = 3, rels;
rels = func(func(x, y), z);
printf("%d\n", 1 << rels);
请问第一次调用 func 是会返回 2吗?
然后第二次调用为 func( 2, 3) ,返回 2,赋值给rels
最后 1 左移两位输出 4
你分析的非常正确,稍微有点迷惑性的就是 func(int a, int b) 函数了,虽然没有显式的声明返回类型,但是编译器是可以通过的
会,=操作符优先级高于逗号运算符,逗号表达式的结果是最右侧表达式的结果
函数前面没写返回类型啊
是的