我编码了很长时间,但我之前从未问过这样的问题。
main()
{
int a=5, b, c;
b=a=15;
c=a<15;
printf("%d %d",a,c);
}
a和c的值是多少?我们如何解释'&lt;'或'&gt;' ?
答案 0 :(得分:3)
var MainNav = $(this).val();
运算符会产生<
类型的0
或1
。
如果左操作数小于右操作数,则产生int
,否则为1
。
在您的情况下,左操作数的值为0
或a
;右操作数的值为15
。因此运算符产生值15
。
然后将0
分配给0
。
带有额外空格,括号和注释的语句可以写成
c
答案 1 :(得分:0)
main()
{
int a=5, b, c;
b=a=15; // a = 15
c=a<15; // a is not < 15, a is 15, so c is 0
printf("%d %d",a,c);
}
答案 2 :(得分:0)
首先,此代码的结果未定义,因为您没有为printf
提供函数原型
其次,使用main()
进一步未定义,因为函数需要返回类型,而main()
特别需要是int返回类型(其他实现的处理是实现定义的。
现在假设您将代码更正为:
#include <stdio.h>
int main(void)
{
int a=5, b, c;
b=a=15;
c=a<15;
printf("%d %d",a,c);
return 0;
}
然后c
的输出为0
。
这是因为<
运算符会根据比较是否为真来返回int类型0
或1
。