问题:“为什么表达式a-b=25无效,表达式a-(b=25)有效”
a-b=25无效的原因很好解释,根据赋值左值要求即可知道。
但对于后者经过运行后有几个疑惑,代码如下:
#include <stdio.h>
int main()
{
int a, b;
a - (b = 25);
printf("%d\n",a-(b=25));
printf("a=%d b=%d",a,b);
return 0;
}
疑惑一:a-(b=25)实际赋值过程?b被赋予25后如何进行下一步?
疑惑二:运行该段代码显示:
-9
a=16 b=25
a并未定义初始值,所以a=16是从何而来?