【手撕C语言基础】运算符(3)

  • (꒪ꇴ꒪ ),hello我是祐言
  • 博客主页:C语言基础,Linux基础,软件配置领域博主🌍
  • 快上🚘,一起学习!
  • 送给读者的一句鸡汤🤔:
  • 集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏

1. 运算符的优先级和结合性

        在C语言中,运算符具有不同的优先级和结合性,这决定了表达式中运算符的求值顺序。了解运算符的优先级和结合性对于正确理解和编写复杂的表达式至关重要。

        例如,算术运算符(+、-、*、/)的优先级较高,而逻辑运算符(&&、||)的优先级较低。在同一表达式中,高优先级的运算符会先于低优先级的运算符进行求值。结合性指定了相同优先级的运算符在没有括号的情况下是从左到右还是从右到左结合。

为了更好地理解运算符优先级和结合性,请看下面的示例:

int x = 2 + 3 * 4; // 乘法优先于加法,结果为14
int y = (2 + 3) * 4; // 使用括号改变优先级,结果为20
int z = x > y && x < 10; // &&的优先级低于>,结果为1(真)

        了解运算符的优先级和结合性可以避免表达式求值顺序出现混淆,从而提高代码的可读性和准确性。

2. 运算符的类型


        C语言中的运算符可以按照功能进行分类,常见的类型包括算术运算符、关系运算符、逻辑运算符、位运算符等。不同类型的运算符用于不同的操作和目的。

        (1)算术运算符:用于执行基本的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)等;
        (2)关系运算符:用于比较两个值的关系,包括大于(>)、小于(<)、等于(==)、大于等于(>=)等;
        (3)逻辑运算符:用于对逻辑表达式进行操作,包括逻辑非(!)、逻辑与(&&)、逻辑或(||)等;
        (4)位运算符:用于对二进制位进行操作,包括按位与(&)、按位或(|)、按位异或(^)等。

3. 按位运算符的应用


        按位运算符是对二进制位进行操作的运算符,适用于位操作和掩码操作等场景。通过按位运算符,可以对整数的二进制表示进行逐位的操作和处理。

        例如,使用按位与(&)可以提取整数中的特定位,使用按位或(|)可以将特定位设置为特定值。这在处理设备寄存器、图形处理和加密算法等领域中非常有用。

        以下是一个简单的示例:

unsigned int flags = 0x0A; // 二进制为 00001010

// 使用按位与提取第二个和第四个位的值
unsigned int secondBit = flags & 0x02; // 00000010,结果为2
unsigned int fourthBit = flags & 0x08; // 00001000,结果为8

// 使用按位或设置第三个位为1
flags = flags | 0x04; // 00001010 | 00000100 = 00001110,结果为14

4. 三元运算符的嵌套

        C语言中的三元运算符(条件运算符)允许在单个表达式中进行条件判断和赋值操作。它的基本语法是 condition ? expression1 : expression2,其中 condition 是一个条件表达式,expression1 和 expression2 是两个可能的结果。

        三元运算符可以嵌套使用,以实现复杂的条件逻辑。通过嵌套,可以根据不同的条件选择不同的表达式进行求值。

        以下是一个简单的示例用法:

int x = 10;
int y = 5;
int z = x > y ? (x < 15 ? 100 : 200) : (y > 0 ? 300 : 400);
// x > y 为真,x < 15 为真,结果为100

5. 指针运算符的详细说明


        在C语言中,指针运算符用于对指针类型进行操作。指针是存储内存地址的变量,通过指针运算符,可以获取指针所指向的变量的值或对其进行操作。

        常用的指针运算符包括取地址运算符 & 和解引用运算符 *。取地址运算符用于获取变量的地址,解引用运算符用于访问指针指向的变量,并且指针运算符在C语言中具有重要的地位,它允许对内存进行直接操作,实现了灵活的数据访问和处理。

        以下是一个简单的示例用法:

int x = 10;
int *ptr = &x; // ptr 指向 x

printf("x 的值:%d\n", *ptr); // 解引用获取 x 的值,结果为 10

*ptr = 20; // 通过指针修改 x 的值
printf("修改后的 x 的值:%d\n", x);

        今天的分享就到这里啦~

        更多C语言相关文章,关注专栏:

手撕C语言

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉感谢关注🎉
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

祐言QAQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值