闲聊几句:
写这篇C语言操作符主要为练手,总结一下这两天了解的有关操作符的知识,以免以后老年痴呆了忘了相关的内容还可以有个地方回来瞄一眼。 如果有什么有错的地方被路过的大牛们看出来了还请加以指正。。。
操作符
个人理解为,操作符就是可以进行某些操作的符号(其实我感觉我说的是废话。。。)
操作符分类
-算数操作符
-移位操作符
-赋值操作符
-单目操作符
-关系操作符
-逻辑操作符
-条件操作符
-逗号表达式
-下标引用、函数调用和结构成员
算数操作符
操作符 | 功能 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 |
加减乘都没什么好说的了,和小学学的东西一样的。
‘/’运算的时候注意分子分母有一个为浮点型,进行的就是浮点型除法。
‘%’返回的结果是整除后的余数,但是这里首先要注意两个操作数都必须是整数(这里其实有一个问题,负整数取模也属于整数运算,但是查资料以后了解到似乎在不同语言里面的处理方式不一样,目前存疑,仍需研究)。
移位操作符
操作符 | 功能 |
---|---|
<< | 左移操作符 |
>> | 右移操作符 |
移位操作符运算的时候都是对补码进行移位,变量操作后,自身不会改变。
int main()
{
int a = 1;
int b = a << 1;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
结果: a=1,b=2
‘<<’时,补码左移,右补0,左丢弃
‘>>’时,补码右移,左补原来的最高位,右丢弃‘>>’的结果可以分两种情况:
①逻辑移位:此情况下不用考虑符号位,之间在最高位补0;
②算数移位:这是目前编译器运行得到结果采用的方式,补原来的最高位,保证不会改变符号位。
位操作符
操作符 | 功能 |
---|---|
& | 按位与 |
丨 | 按位或 |
^ | 按位异或 |
同样是只能对补码进行运算,而且必须是整数(编译会报错。。。)
‘&’:同一才为一
’ | ‘:有一就为一
‘^’:相同为零,相异为一
赋值操作符
操作符 | 功能 |
---|---|
= | 赋值 |
这个。。。没什么好说的了,写程序的时候注意别把判断相等写成赋值就行(手动哭),大一我就这样错过。。。
而且赋值可以连续使用:
如:a=x=y;
我就想说累不累。。。
复合赋值符
操作符 | 功能 |
---|---|
+= | |
-= | |
*= | |
/= | |
%= | |
>>= | |
<<= | |
&= | |
丨= | |
^= |
这个老简单了!
a += b 意思就是 a = a + b,以此类推
单目操作符
操作符 | 功能 |
---|---|
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(字节) |
~ | 对一个数的二进制按位取反 |
– | 前置、后置自减 |
++ | 前置、后置自加 |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
‘!’: 多用于判断真假
‘-‘: 负数,-1 -2 -3······
‘+’:正数,经常省略
‘sizeof’:既是操作符,又是关键字,但!不!是!函!数!!!用来求变量或类型大小,单位为字节
如:sizeof(数组名)或sizeof 变量
其他的功能就是他们的解释了,多用用就全会了,手动坏笑~
关系操作符
操作符 | 功能 |
---|---|
> | |
< | |
>= | |
<= | |
!= | 不等于 |
== | 等于 |
相信上过小学一年级(也许是学前班)都知道这些是什么意思,老话重谈,注意相等和赋值!
逻辑运算符
操作符 | 功能 |
---|---|
&& | 逻辑与 |
丨丨 | 逻辑或 |
要区分逻辑和按位的区别,逻辑运算符判断真假,值为0与非0。
条件运算符
exp1 ? exp2 : exp3
判断exp1是否成立,成立为exp2,否则为exp3
以后比大小一句解决!
逗号表达式
exp1,exp2,exp3,…,expN
从左向右依次执行。整个表达式结果为最后一个表达式结果。
int a=1;
int b=2;
int c=(a>b,a=b+10,a,b=b+1);
结果:c=3
下标引用、函数调用和结构成员
1.[]
操作数:一个数组名+一个索引值
如:arr[10]或10[arr]
‘[]’的两个操作数为arr和102.()
函数调用操作符:接受一个或多个操作数,第一个为函数名,剩余为传递给函数的参数
如:fun(int a,float b,…)
操作数:fun 、a 、b…3.访问一个结构的成员
’ . ‘: 结构体 . 成员名
‘->’:->结构体指针->成员名
防老年痴呆第一篇over~
第一次用markdown写博客(听说大神们都是用这个的,努力!奋斗!),没有表情包很难受。。。手动哭泣~~~