C语言中代码i=3/2,3*2;结果为什么是1?
展开全部
因为赋值运算符的优先级高于逗号表达式。
i=3/2,3*2;就相当于(i=3/2),3*2;最后i等于1,而整个逗号表达式的值是6。要将i赋值为6,得用括号:i=(3/2,3*2);
这些,可以用以下代码加以验证:
#include <stdio.h>
int main()
{
int i,n,arr[10]={0};
n=1 ? i=3/2,3*2 : 0;
printf("%d %d\n",i,n);
arr[i=3/2,3*2]=6666;
printf("%d %d\n",i,arr[6]);
if(i=3/2,3*2==6)
printf("%d\n",i);
i=(3/2,3*2);
printf("%d\n",i);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询