我在使用结构的C中遇到了这个问题.我不确定这里到底发生了什么.谢谢
#include<stdio.h>
int main()
{
struct num1
{
int n1:2;
int n2:3;
int n3:4;
};
struct num1 num={3,4,5};
printf("%d %d %d\n",num.n1,num.n2,num.n3);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
获得的输出是
-1 -4 5
在c中,
main() {
int a = (1,2,3,4);
printf("%d",a);
}
Run Code Online (Sandbox Code Playgroud)
产生的输出
4
这是因为逗号(,)运算符具有从右到左的优先级.但
main() {
int a = {1,2,3,4};
printf("%d",a);
}
Run Code Online (Sandbox Code Playgroud)
产生一个输出
1
任何人都会解释这背后的逻辑.谢谢