正文

C表达式的值2012-02-01 00:18:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/katwood/53187.html

分享到:

首先他们都是逻辑运算。如果在数学方面不是运用在逻辑方面的话,c>b>a他就相当于一个常量,也就是一个已知数,也就是C最大,B其次,A最小,如果运用在逻辑判断的话,因为他们的优先级相同,先判断出C是否大于B,得出的结果为逻辑是和否,也就是1和0,然后再用1和0去与A比较大小,同样得出1或者0。但此时的ABC三个数字都必须是个已知数,不然它只能是个命题,不能判断真假。而在C语言中,无论它是变量还是常量都可以做出判断,如果是常量的ABC做比较,判断的是他们的ASIC值的大小,优先级相同都是从左至右判断,返回结果也是逻辑1或0.如果是变量做比较也是相同的道理,只不过他们比较的是变量的值。

a<b?a:c<d?c:d从右往左先看c<d?c:d 问你c是不是小于d,如果是则c不变,如果不是则c=b,简单来说就是取cd中较小的一个,那么就是3接着a<b?a:3,同理,如果a小于b,那么等于a,否则等于3

大家看看下边程序会输出什么东东
PS: 注意括号的作用
#include <stdio.h>
void main()
{
int a, b;
printf( "%d...%d...%d\n ", (a=1), (b=(a=2)), (b=(a=2)+(a=3)) );
}

返回值是函数的概念,这样一个表达式是没有返回值的,表达式的值被称作value of expression,这个表达式最后的结果是a的值,也就是一个右值。

题外话,对于计算机来说,它的目的其实并不是把10赋予a,把10赋予a只是人类的逻辑概念,计算机的目的,只是计算这个表达式而已,把10赋予a只是这个计算过程的副作用。

应该是有返回值的,因为这个应该就是运算符重载吧,我是说理解上来说!

阅读(1425) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册