当前位置:网站首页>C语言04、操作符
C语言04、操作符
2022-08-03 16:07:00 【列宁格勒的街头】
操作符
C语言的操作符有很多种:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用函数调用和结构成员
算术操作符(+ - * / %)
除了%只能作用于整数,其他几个操作符都可以作用于整数和浮点数
移位操作符
<< 左移操作符
>> 右移操作符
注意:移位操作符的操作数只能是整数,不仅被移的数要是整数,被移的个数也要是整数,并且不要移动负数位,这个是标准未定义的
左移操作符(<<)
移位规则:左边抛弃,右边补0
右移操作符(>>)
右移操作符分为两种:
1.逻辑移位 左边补0,右边丢弃
2.算术移位 左边补原符号位,右边丢弃
一般情况下是算数右移
位操作符(& | ^)
位操作符有:&(按位与)
|(按位或)
^(按位异或)
注意:它们的操作数必须是整数
&:二进制下相同位数为1则为1,不相同则为0
|:二进制下相同位数至少有一个是1则为1,没有一个1则为0
^:二进制下相同位数相同为0,相异为1
赋值操作符( = )
赋值操作符的运算顺序是从右往左,并且可以连续赋值。
注意与==区分开来
复合赋值符
+=、*=、/=、%=、&= ......
单目操作符
!、-、+、&、sizeof、~、--、++、*、强制类型转换......
即只有一个操作数的操作符就叫单目操作符
关系操作符(> < >= <= != ==)
注意区分 = 与 ==
逻辑操作符(&& ||)
&&:逻辑与
||:逻辑或
注意逻辑与、逻辑或的短路问题
逻辑与从前往后若遇到一个条件为假,则后面的都不执行了
逻辑或从前往后若遇到一个条件为真,则后面都不执行了
条件操作符
例如:a>b?a:b;相当于if(a>b)则选择a
注意:尽量带括号来防止优先级和结合性带来的错误
逗号表达式
exp1,exp2,exp3,exp4,exp5...expN
逗号表达式从左往右依次执行,整个表达式的结果是最后一个表达式的结果,但是中途该有的表达式运算还是有的
下标引用、函数调用和访问结构体成员
下标引用操作符([ ])
int arr[10];//创建数组
arr[9] = 10;//实用下标引用操作符。
[ ]的两个操作数是arr和9。函数调用操作符
#include <stdio.h>
void test1()
{
printf("hehe\n");
}
void test2(const char *str)
{
printf("%s\n", str);
}
int main()
{
test1(); //实用()作为函数调用操作符。
test2("hello bit.");//实用()作为函数调用操作符。
return 0;
}访问结构体成员操作符
. 结构体.成员名
-> 结构体指针->成员名
#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;
}表达式求值
表达式求值的顺序是由操作符的优先级和结合性决定的
边栏推荐
- smp,numa和mpp体系结构总结
- 破解数字化转型困局,企业分析协同场景案例解析
- How to get the 2 d space prior to ViT?UMA & Hong Kong institute of technology & ali SP - ViT, study for visual Transformer 2 d space prior knowledge!.
- MySQL窗口函数 OVER()函数介绍
- Fortinet产品导入AWS AMI操作文档
- 【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
- 出海季,互联网出海锦囊之本地化
- DataGrip数据仓库工具
- To participate in sweepstakes, incoming new programmers magazine welfare!
- Kubernetes 笔记 / 生产环境
猜你喜欢

Why do I strongly recommend using smart async?

蒋松廷 荣获第六季完美童模全球总决赛 全球总冠军

DAYU200 OpenHarmony标准系统HDMI全屏显示

STM32 GPIO LED和蜂鸣器实现【第四天】

机器人开发--Universal Scene Description(USD)

攻防世界----bug

我在滴滴做开源

一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户

Introduction to the advantages of the new generation mesh network protocol T-Mesh wireless communication technology

Common distributed theories (CAP, BASE) and consensus protocols (Gosssip, Raft)
随机推荐
罗克韦尔AB PLC RSLogix5000中创建新项目、任务、程序和例程的具体方法和步骤
uniapp的webview滑动缩放
MySQL窗口函数
To participate in sweepstakes, incoming new programmers magazine welfare!
Kubernetes 笔记 / 目录
滑环安装注意事项
When mobile applications go overseas, is your "network optimization" holding back?
spark入门学习-2
MySQL性能优化_小表驱动大表
MySQL窗口函数 PARTITION BY()函数介绍
CopyOnWriteArrayList details
ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流
不可忽略!户外LED显示屏的特点及优势
【QT】Qt 给已经开发好的程序快速封装成动态库
世界顶级级架构师编写2580页DDD领域驱动设计笔记,属实有牌面
ReentrantLock详解
【Unity入门计划】制作RubyAdventure01-玩家的创建&移动
"Avnet Embedded Weekly" Issue 276: 2022.07.25--2022.07.31
下午见!2022京东云数据库新品发布会
如何设计大电流九线导电滑环