C语言表达式和表达式的值

今天突然发现如果能很好的理解表达式和表达式的值的概念,可以使编程代码变的更整洁。很多时候我们总是忘记从最基本的概念开始考虑问题。我觉得我们有必要把C/C++标准看下,在里面肯定有很多我们一直困惑的问题的答案。


C语言是基于结构化程序设计思想的程序设计语言,结构化的程序由函数组成,而函数由语句组成。语句的标志是分号,语句去掉分号后就成了表达式。记忆关键词:常量表达式,关系表达式,运算表达式,逻辑表达式,赋值表达式,逗号表达式……


下面分别介绍各种表达式的值:

#include <stdio.h>

#define PrintInt(expr) printf("%s:%d\n",#expr,(expr))


int main(int argc,char **argv)
{
    int a=3,b=5;
    PrintInt(4);  // 常量表达式的值是其本身
    PrintInt((a>b));  // 关系表达式的值是关系比较的结果(true/false,1/0)
    PrintInt((a+b));  // 运算表达式的值是运算结果
    PrintInt((a&b));  // 逻辑表达式的值是逻辑运算结果
    PrintInt((a=4));  // ! 赋值表达式的值是=右边表达式的值
    PrintInt((a++,9));  // ! 逗号表达式的值是最后一个表达式的值
    c=a+b,b+1;    // 到目前为a=4,b=5
    PrintInt(c);  // 需要结合运算符优先级,,运算符优先级最低
    c=(a+b),b+1;
    PrintInt(c);  // 同上
    c=(a+b,b+1);
    PrintInt(c);  // 很容易理解 
    return 0 ;
}
运行结果:



简单的巧用表达式的值例子:

int a = bTest?(0):(i++,1);  // 在bTest为false的情况下使a=1,并且需要使i加1



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值