搜索
首页 电脑/网络 软件

简单的C语言计算问题

a=1,b=2;c=a<b++&&a; printf("a=%d,b=%d,c=%d\n",a,b,c); 结果是a=1 b=3 c=1 为什么? 我刚开始学习C语言,一点不懂,请详细一些,还有就是应该像看哪些方面的知识才能解决这样的问题

全部回答

2006-06-13

0 0
    c=a<b++&&a; 这一句中要注意各种运算符的优先级,自增运算符最高,比较运算符其次,逻辑与运算符最低。而在这里自增运算符位于右边,它表示b先参与运算后再执行加1的操作。
  所以这一句的执行顺序为先得到a<b的逻辑值(由于1<2,所以为真),然后与a进行逻辑与的操作,由于a=1,而在C语言中的数据类型转换中非零整数即为逻辑真,所以逻辑与的结果为真(用整数表示即为1),最后执行b加1的操作,b的值变为3。
     输出语句中将a、b、c都以整型输出,因此结果应该为 a=1,b=3,c=1 C语言方面入门级教程首推谭浩强的《C程序设计(第二版)》,这里提供一个免费下载的页面 点击“下载地址”后会弹出一个新窗口,再点击“下载地址”旁边的链接即可下载(不用去理会上面的注册说明)。
    。

2006-06-13

51 0
b++表示b=b+1;所以b成了3 而&&a就是a的值即1;所以b++&&a的值就是4;因此逻辑表达式a<4的值就是真(1)了,所以c被赋值为1; 也可以直观的表示成c=(a<(b++&&a))

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
多媒体软件
系统软件
办公软件
网络软件
图像处理软件
举报
举报原因(必选):
取消确定举报