C语言入门 之 操作符汇总详解

一,算数操作符

算数操作符无非就是:

+        -         *        %        /

需要注意的是%操作符只能作用于整型变量,除此之外都可以作用于浮点数。

二,移位操作符

>>----------------右移操作符

右移操作符:

算术右移(通常都为算术右移):

右边丢掉,左边加原来的符号。

逻辑右移:

右边丢掉,左边加0。

<<----------------左移操作符

左移操作符:

左边丢弃,右边补0。

注:移位操作符移动的是二进制数字,数字在计算机里以二进制存在(分为原码,反码,补码),储存到内存的是补码,其中正整数原反补相同。但负数不同,负数的原码为自身二进制,反码的符号位置(由左到右第一个数)不变,按位取反,补码为反码加一可得到。

注2:不要移动负数位,这种行为是未定义的。如:

int a = 1;
a >> -1;

三,位操作符

位操作符有:

&:按危与

|:按位或

^:按位异或

这三种,他们的操作位必须为整数,都在用二进制,接下来我们看看咋用:

&:

#include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;
	int c = a&b;
//	a :000000000000000000000000000000000011
//	b :000000000000000000000000000000000101
//	c :000000000000000000000000000000000001
//	总结一下就是有0就为0; 
	printf("%d", c); 
	return 0;
}

结果和我们算的一样为1

|:

int main()
{
	int a = 3;
	int b = 5;
	int c = a|b;
//	a :000000000000000000000000000000000011
//	b :000000000000000000000000000000000101
//	c :000000000000000000000000000000000111
//	总结一下就是有1就为1; 
	printf("%d", c); 
	return 0;
}

结果和我们算的一样为7

^:

#include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;
	int c = a^b;
//	a :000000000000000000000000000000000011
//	b :000000000000000000000000000000000101
//	c :000000000000000000000000000000000110
//	总结一下就是 相同为0,相异为1; 
	printf("%d", c); 
	return 0;
}

结果和我们算的一样为6

四,单目操作符:

!                                        逻辑反操作

-  ,--                                  负值,递减

+ ,++                                正值,递增

                                        取地址

sizeof                                 操作数的类型长度(字节)

                                        对一个数的二进制按位取反

*                                         解引用

(类型)                             强制类型转换

五,逗号表达式

逗号表达式,就是逗号隔开的多个表达式。逗号表达式,从左到右依次执行,整个表达式的结果是最后一个表达式的结果。

六,关系操作符

>

>=

<

<=

!=                   不相等

==                       相等

注:== 和 = 容易写错

七,逻辑操作符

&&                        和

||                           或

就是字面意思,没内涵..........

八,下标引用,函数调用和结构成员

1.下标引用操作符:[ ]

一个数组名加一个索引值   如:arr[10]

2.函数调用操作符:( )

接受一个或多个操作数:第一个操作数是函数名,其他的操作数是函数的参数  如:sum(a, b),其中操作数有三个2分别为:sum, a,  b

3.结构体类型--struct

.            结构体.成员名

->         结构体指针->成员名

我举个示例:

#include<stdio.h>
struct student
{
	char nume[20];
	int age;
};
int main()
{
	//创造了一个学生对象s1,并初始化 
	struct student s1 = {"皮卡丘",99};
	struct student* aa = &s1;
	//结构体指针->成员名
	printf("%s\n", aa->nume);
	printf("%d\n", aa->age);
	
	//结构体变量.成员名 
	printf("%s\n", s1.nume);
	printf("%d\n", s1.age);

	return 0;
}

操作符还要注意四个影响因素:

1.操作符的优先级。

2.操作符的结合性。

3.是否控制求值次序。

4.整形提升(可以不算的)

看完了有用,求求点赞啊。。。。。。。。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值