【C语言】—— 《C和指针》学习笔记3

操作符

算数操作符

+  , - , * , / , %

:除%之外,其余操作符既适用于浮点类型也适用于整形。

位操作符

& , | , ^    (AND,OR,XOR)

位的操纵

  • 将指定的二进制位设置为1
    value = value | 1 << bit_number; value |= 1 << bit_number;
  • 将制定的二进制位清01 ,即求补,对应位0变1,1变0
    value = value & ~(1 << bit_number);

这里我们来看一个题目,计算参数二进制中1的个数

int count_one_bits1(size_t value)
{
	int ones;
	for (ones = 0; value != 0; value = value >> 1)
	{
		if (value % 2 == 0)
			ones = ones + 1;
	}
	return ones;
}
int count_one_bits2(size_t value)
{
	int ones;
	for (ones = 0; value != 0; value >>= 1)
	{
		if ((value & 1) != 0)
			ones += 1;
	}
	return ones;
}

注:这里我们可以看到两个函数实现了一样的功能,但是显然函数2要比函数1更加简洁,这是因为函数二我们运用了关系操作符和复合赋值符
关系操作符

> , >= , < , <= , != , ==

复合赋值符

+= , -= , *= , /= , %= 
<<= , >>= , &= , ^= , |= 

逻辑运算符
区别于位运算符

||  ,  &&

条件运算符

expression1 ? expression2 : expression3

逗号运算符

  • 分隔各个表达式,表达式从左向右依次求值,整个表达式的结果是最后一个表达式的值。

左值与右值

  • 注:表达式的左值必须表示一个可以存储结果值的地点,且表达式的左值必须是可以修改的,因此字面值常量不可以做左值。

类型转换

隐式类型转换

  • 整形提升,C语言中整形算数运算总是至少以缺省整型类型的精度来进行,字符型和短整型操作数在使用前被转换为普通整型,再进行计算。

算数类型转换

  • 若是两个操作数的类型不同,在类型列表中排名低的会先转换为另一个操作数的类型,再执行操作。

举个例子

eg:    
          int a = 500;  
          int  b = 5;
          long c = a * b;   此时会存在类型转换,long c = (long)a * c;

操作符的优先级

C语言运算符的优先级C语言运算符的优先级
C语言运算符的优先级

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值