目录
*** 作符
算术 *** 作符
移位 *** 作符
位 *** 作符
赋值 *** 作符
单目 *** 作符
关系 *** 作符
逻辑 *** 作符
条件 *** 作符
逗号表达式
下标引用、函数调用、结构体成员
结语
*** 作符
算术 *** 作符C语言给出了很多的 *** 作符供我们使用, *** 作符可以帮助我们实现各种的运算。我们可以先对 *** 作符进行一个简单的分类, *** 作符可以分为:算术 *** 作符、移位 *** 作符、位 *** 作符、赋值 *** 作符、单目 *** 作符、关系 *** 作符、逻辑 *** 作符、条件 *** 作符、逗号表达式还有下标引用、函数调用、结构体成员。
移位 *** 作符唯一要注意的是除法 *** 作符和取模 *** 作符,当进行除法时如果是两个整形相除只能得到整形,比如7/3得到的的不是2.5,而是2,如果想要得到一个浮点数请用浮点类型进行除法运算。再说取模,取模其实是取余数,比如7/3,商2余1,那么得到的那个余数1就是要得到的数。
左移右移其实移动的是数字的二进制位,在计算机中数字都是由二进制存储的。左移 *** 作符就是将除了符号位其他为全部向左移动n位。
右移 *** 作符和左移的用法一样,只不过是将二进制位向右移动。
位 *** 作符在计算机中0为假,非0为真,位 *** 作符也是 *** 作数的二进制位,首先说按位与&,他是将两个数的二进制原码计较,两数有0则为0,全1才为1。
按位或 | ,则是,一个为1则为1,两个为0才为0。按位异或是两数相同则为0,两数相异为1。
赋值 *** 作符赋值 *** 作符=,应该都知道用法了。其他的 *** 作符其实也很好理解,就是将一个变量进行运算之后再把计算的结果还赋值给这个变量,例如:
#include单目 *** 作符int main() { //int sum=3; //sum=sum+2; //可以等价为 int sum=3; sum+=2; return 0; }
介绍了这么多 *** 作符,有没有发现这些 *** 作符都是要有两个 *** 作 *** 作数才能进行 *** 作,
像 *** 作数 *** 作符 *** 作数的形式使用,单目 *** 作符则是只有一个 *** 作数就可以完成他的功能。
关系 *** 作符!:逻辑反 *** 作符,0则为1,非0则为0。
-:负值 *** 作,将 *** 作数变为负数,假如 *** 作数已经是负数了,则负负得正。
+:表示正数,没啥用,可以省略,就算是给负数加个正号,根据负正得负还是负数。
&:取地址 *** 作符,取出变量在内存中存放的地址位置,地址以十六进制表示。
sizeof:以字节为单位,计算数据类型的长度大小。前面有介绍过就不多解释了。
~:按位取反,将 *** 作数的二进制位按位取反。
想要理解为什么6按位取反后得到的是-7,就要先了解数字在计算机里是如何存储的。在计算机中整形是以二进制的补码存储的,整形占4个字节即32位。
第一位表示符号位,0为正数,1代表负数。而6是正数,正数的原码、反码、补码不变。将6的二进制按位取反,如何再得到这个数的补码,就是-7:
--:前置--和后置--,这两个的区别就在于,前置的--的对 *** 作数先进行-1的 *** 作后再进行使用,而后置的--则是先使用再进行--。
++:前置++与后置++,和前置--和后置--一样使用,所以就不做解释了。
*:解引用,用来对指针进行解引用 *** 作,通过指针去放访问 指针所存储变量的地址所存的值。
(类型):强制类型转换,能够将数据类型进行强制转换,比如将int类型的数据,强制转换成double类型的浮点型数字。
关系 *** 作符更多是用于选择语句判断或判断循环语句的循环条件。
逻辑 *** 作符>:判断左 *** 作数是否大于右 *** 作数。
<:判断左操作数是否小于右操作数。
>=:与数学的方式不同(≥),编程语言中是以这种方式表示大于等于的,判断左 *** 作数是否大于或者等于右 *** 作数。
<=:断左操作数是否小于或者等于右操作数。
==:判断两个 *** 作是否相等,但切勿将两个等于号写成一个等于号,一个等于号叫做赋值 *** 作。当一个变量与一个常量比较时可以写成这样:5==a,可以防止不小心写成一个等于号。
!=:用来判断两个条件是否是不相等的。
也是多用于选择语句和循环语句的判断
条件 *** 作符&&(并且):只有当两个条件都成立时则条件成立,否则就算其中一个条件成立另一个不成立,也是不成立。
||(或者):当两个条件有其中一个条件成立,则条件成立,两个条件都不成立则条件才不成立。
可以用来比较大小,玩的牛的大佬也拿去递归了。
逗号表达式直接举个例子:
下标引用、函数调用、结构体成员结语[ ]:下标引用 *** 作符,是用来访问数组下标的,通过数组下标找到数组下标所对应的元素
():函数调用 *** 作符,用来调用函数的参数,函数的参数比较特殊,可以没有参数也可以有很多参数,参数以逗号隔开。但是必须要有函数名 。函数名(参数)
.:点 *** 作符用来访问结构体成员。(结构体再解释)
->:箭头 *** 作符用来访问结构体指针成员。
可算是让我写完了,虽然有 *** 作符真的是太多了,本来还想把关键字也加进去,但是这样感觉内容就比较杂乱,所以还是下次再写吧。写了四个小时,可能有些地方因为太疲惫了,没写对还请各位看到的大佬提醒一哈,溜了~干饭。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)