c_008 C语言操作符详解

1. 操作符分类:

算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员

2. 算术操作符

+ 加
- 减
* 乘
/ 除
% 取余

    1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
    2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
    3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。

3. 移位操作符

<< 左移操作符
>> 右移操作符

注:移位操作符的操作数只能是整数。

3.1 左移操作符

移位规则:
左边抛弃、右边补0

在这里插入图片描述

  • 例如
    #include <stdio.h>
    
    
    int main()
    {
    	int m = 10;
    	m << 1;
    	printf("%d\n", m); // 输出10
    
    	m = m<< 1;
    	printf("%d\n", m);  // 输出20
    
    	return 0;
    }
    

3.2 右移操作符

移位规则:
 1. 逻辑移位 (符号 >>>)
   左边用0填充,右边丢弃
  2. 算术移位(符号 >>)
   左边用原该值的符号位填充,右边丢弃

在这里插入图片描述
警告⚠ : 对于移位运算符,不要移动负数位,这个是标准未定义的。

int num = 10;
num>>-1;//error

4. 位操作符

作用在二进制位上

&   //按位与
|   //按位或
^   //按位异或
注:他们的操作数必须是整数。

5. 赋值操作符

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

6. 单目操作符

!     逻辑反操作
-     负值
+     正值
&     取地址
sizeof     操作数的类型长度(以字节为单位)
~     对一个数的二进制按位取反(包括符号位也取反)
–     前置、后置–
++     前置、后置++
*     间接访问操作符(解引用操作符)
(类型)     强制类型转换

7. 关系操作符

>
>=
<
<=
!=   用于测试“不相等”
==   用于测试“相等”

8. 逻辑操作符

&&   逻辑与
||    逻辑或

  • 区分逻辑与和按位与
    区分逻辑或和按位或

    1&2----->0
    1&&2---->1
    1|2----->3
    1||2---->1
    

9. 条件操作符

exp1 ? exp2 : exp3
if (a > 5)
        b = 3;
else
        b = -3;
转换成条件表达式
b = (a > 5 ?  3:-3)

10. 逗号表达式

exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
  • 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
int a = 1;
int b = 2;
int c = (a>b, a=b+10, a, b=a+1);//逗号表达式
 // c = 13  

11. 下标引用、函数调用和结构成员

  1. [ ] 下标引用操作符
    操作数:一个数组名 + 一个索引值
  2. ( ) 函数调用操作符
    接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
  3. 访问一个结构的成员
    .   结构体.成员名
    ->  结构体指针->成员名
#include <stdio.h>
struct Stu
{
	char name[10];
	int age;
	char sex[5];
	double score;
};
 void set_age1(struct Stu stu)
	{
		stu.age = 18;
	}
	
void set_age2(struct Stu* pStu)
	{
		pStu->age = 18;//结构成员访问
	}
	int main()
	{
		struct Stu stu;
		struct Stu* pStu = &stu;//结构成员访问

		stu.age = 20;//结构成员访问
		set_age1(stu);

		pStu->age = 20;//结构成员访问
		set_age2(pStu);
		return 0;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中的string函数主要包括字符串的处理函数和字符串的操作函数。 字符串的处理函数主要有以下几个: 1. strlen:用于计算字符串的长度,即包含的字符数目。 2. strcpy:用于将一个字符串复制到另一个字符串中。 3. strcat:用于将两个字符串连接起来。 4. strcmp:用于比较两个字符串的大小关系。 5. strchr:用于在一个字符串中查找指定字符的位置。 6. strstr:用于在一个字符串中查找指定子串的位置。 字符串的操作函数主要有以下几个: 1. sprintf:用于将格式化的数据写入字符串中。 2. sscanf:用于从字符串中读取格式化的数据。 3. strtok:用于将一个字符串按照指定的分隔符进行分割。 4. strncmp:用于比较两个字符串的前n个字符的大小关系。 5. strncpy:用于将一个字符串的部分内容复制到另一个字符串中。 6. memset:用于给字符串的指定范围内的每个字符赋予相同的值。 这些函数可以帮助我们在C语言中方便地处理字符串,实现字符串的复制、连接、比较、查找等操作。通过这些函数,我们可以更高效地处理文本数据,提高代码的可读性和可维护性。 需要注意的是,使用这些函数时要确保输入的参数合法,以避免内存越界等错误。同时,字符串的内存空间需要提前分配好,以免出现不可预知的问题。在实际编程中,我们需要灵活运用这些函数,结合具体需求,进行字符串的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值