当前位置:网站首页>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;
}
表达式求值
表达式求值的顺序是由操作符的优先级和结合性决定的
边栏推荐
猜你喜欢
AI+BI+Visualization, Deep Analysis of Sugar BI Architecture
详谈RDMA技术原理和三种实现方式
用友YonSuite与旺店通数据集成对接-技术篇2
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户
2021年数据泄露成本报告解读
Windows 事件转发到 SQL 数据库
世界顶级级架构师编写2580页DDD领域驱动设计笔记,属实有牌面
[QT] Qt project demo: data is displayed on the ui interface, double-click the mouse to display specific information in a pop-up window
基于DMS的数仓智能运维服务,知多少?
MATLAB | 七夕节快到了,还不给朋友安排上这个咕呱小青蛙?
随机推荐
How to analyze the weekly activity rate?
字典表(还需要输入2个字)
To participate in sweepstakes, incoming new programmers magazine welfare!
从零开始搭建MySQL主从复制架构
TCP 可靠吗?为什么?
小熊派——无线联网开发
扩展欧几里得求逆元实例
1、实例开启无锁表结构变更以后,在任务编排中通过“单实例SQL”节点进行的结构变更,是优先采用无锁表
Introduction to spark learning - 1
【Unity入门计划】基本概念(7)-Input Manager&Input类
mysql delete 执行报错:You can‘t specify target table ‘doctor_info‘ for update in FROM clause
如何选择合适的损失函数,请看......
面了个腾讯35k出来的,他让我见识到什么叫精通MySQL调优
[Deep Learning] Today's bug (August 2)
MySQL窗口函数
Small Tools (4) integrated Seata1.5.2 distributed transactions
EA 改口,称单人游戏是产品组合中“非常重要的一部分”
[QT] Qt project demo: data is displayed on the ui interface, double-click the mouse to display specific information in a pop-up window
滑环安装注意事项
Interpretation of the 2021 Cost of Data Breach Report