C语言赋值问题
#include<stdio.h>intmain(void){intu=1,v=2,w=3;w==(v=-u);printf("w=%d\n",w);return0;}w...
# include<stdio.h>
int main(void)
{
int u = 1, v = 2, w = 3;
w==(v=-u);
printf("w = %d\n", w);
return 0;
}
w的结果为什么是3
w==(v=-u);当v=-u执行后应该是v=-1吧,但w==-1并不成立,按逻辑应该是0才对吧,但运行结果是3,为什么,求解释,谢谢! 展开
int main(void)
{
int u = 1, v = 2, w = 3;
w==(v=-u);
printf("w = %d\n", w);
return 0;
}
w的结果为什么是3
w==(v=-u);当v=-u执行后应该是v=-1吧,但w==-1并不成立,按逻辑应该是0才对吧,但运行结果是3,为什么,求解释,谢谢! 展开
展开全部
==不是赋值号,它是等于号,所以v=-u的值并没有赋给w,w的值仍为3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大姐.==是条件运算符,没有判断后,又把判断的结果赋值给本身的功能。
你是不是想看这种
printf("w=%d\n",w==(v=-u));
你是不是想看这种
printf("w=%d\n",w==(v=-u));
追问
- -!我是男的。懂了。不过你回答的晚了一些。谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你写的是双等号,双等号意思为判断是否相等,本身变量的值是不会改的
追问
嗯。懂了。谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为并没有给w重新赋值,所以它的值不变。虽然有逻辑判断,但是结果并没有赋给w
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然w==-1,是0但这个值并没有赋给任何一个变量,所以W还是3
按照你说的应该是w=(w==(v=-u))
按照你说的应该是w=(w==(v=-u))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询