C程序设计——表达式的值0

表达式

表达式是一组序列,由操作符或操作数组成。

表达式的值

C语言中,所有的表达式,都是有值的,所以本节专门讲讲表达式的值。

算数表达式

算数表达式的值,就是算数运算的结果,比如表达式 1 + 1的值就是2,不多说了,直接上代码:

int main(void)
{
    int iA ;
    int iB ;

    iA = 70 ;
    iB = 30 ;

    printf("iA + iB's value is %d\r\n", iA + iB);
    printf("iA * iB's value is %d\r\n", iA * iB);
}

运行结果如下:

关系表达式

关系表达式的值,只有两个:0 和 1,当关系运算符的结果为真时,表达式的值为1;当关系运算符的结果为假时,结果为0。源码如下:

int main(void)
{
    int iA ;
    int iB ;

    iA = 70 ;
    iB = 30 ;

    printf("iA > iB's value is %d\r\n", iA > iB);
    printf("iA < iB's value is %d\r\n", iA < iB);
}

运行结果如下:

逻辑表达式

关于逻辑表达式,要啰嗦一句,逻辑表达式两端的值,0表示假;所有非0值,表示真。当逻辑运算符的结果为真时,表达式的值为1;当关系运算符的结果为假时,结果为0。源码如下:

int main(void)
{
    int iA ;
    int iB ;
    int iC ;

    iA = 70 ;
    iB = 30 ;
    iC = 0 ;

    printf("iA == %d, iB == %d, iC == %d\r\n\r\n", iA, iB, iC);

    printf("iA && iB's value is %d\r\n", iA && iB);
    printf("iA || iB's value is %d\r\n", iA || iB);
    printf("iA && iC's value is %d\r\n", iA && iC);
    printf("iA || iC's value is %d\r\n", iA || iC);
}

运行结果如下:

位运算表达式

位运算表达式的结果,就是运算符两端的值对应的二进制,逐位运算后的值,比如有两个二进制数:\left ( 1011 \right )_{2} 和\left ( 0101 \right )_{2},它俩按位与运算后的结果就是:\left ( 0001 \right )_{2},如果看的不是很明白,请观察下面的竖式:

\left ( 1011 \right )_{2}\\\left ( 0101 \right )_{2}\\----\\\left ( 0001 \right )_{2}

请看源码:

int main(void)
{
    int iA ;
    int iB ;


    iA = 70 ;
    iB = 30 ;

    printf("iA == 0x%x, iB == 0x%x\r\n\r\n", iA, iB);

    printf("iA && iB's value is 0x%x\r\n", iA & iB);
    printf("iA || iB's value is 0x%x\r\n", iA | iB);
    printf("~iA's      value is 0x%x\r\n", ~iA);
}

注意,上面源码打印数字时,用的是%x,其含义是:以十六进制整数打印。运行结果如下:

注意看,因为 iA 是一个int 型的变量,总共占32位的空间,高位是二进制0,,因此 iA 按位取反(运算符 ~)后,高位的0 变成了1 ,因此 ~iA's  value is 0xffffffb9

赋值表达式

赋值表达式的值,表达式右边的变量,被赋予的值,比如 a = 3,最终 a 被赋值为3 ,因此表达式 a = 3 的值,就是3 。 源码如下:

int main(void)
{
    int iA ;
    int iB ;

    printf("iA = 70's    value is %d\r\n", iA = 70);
    printf("iA += 70's   value is %d\r\n", iA += 70);
    printf("iB = iA ++'s value is %d\r\n", iB = iA ++);
}

运行结果如下:

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十三香炖猪肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值