初识操作符

算数操作符:+ - * / %

int main()
{
	int a = 9 / 2;
	printf("%d\n", a); //输出4,,除号两端都是整数执行证书除法,输出整数
	
	float b = 9 / 2.0;
	printf("%f\n", b);//除号两端有一端是小数,则输出结果为小数

	int c = 9 % 2;  //取模(取余)运算符
	printf("%d\n", c);  //输出1
	return 0;
}

移位操作符:>>  <<

int main()
{
	int a = 2;
	int b = a << 1;  //a的二进制位左移一位,10变成100
	printf("%d\n", b);  //输出结果为4
	return 0;
}

位操作符:&:按位与,二元运算符,只有两个运算对象中对应的位都为1时,结果才为1

                   |:按位与,二元运算符,如果两个运算符对象中的一个位为真或两个位都为真,结果为真

                  ^:按位异或,二元运算符,如果两个运算对象中相应的一个位为真且不是两个位同为1,结果为真

赋值操作符  =  +=  -=  *=  /=  &=  ^=  |=   >>=   <<=

int main()
{
	int a = 2;
	a += 5;//相当于 a = a + 5;

	int b = 2;
	b -= 3;//相当于 b = b - 3;

	int c = 2;
	c %= 1;//相当于 c = c % 1;


	return 0;
}

单目操作符:对应双目(二元)操作符,优先级最高。

!逻辑取反,  -  负值,  +正值, & 取地址,  sizeof 操作数的类型长度(以字节为单位),  

~ 对一个数的二进制按位取反,  -- 前置、后置--,  ++ 前置、后置++, 

* 间接访问操作符(解引用操作符), (类型)强制类型转换。

//!逻辑取反
int main()
{
	//0表示假,非0表示真
	int a = 0;
	printf("%d\n", !a); //a为假,!a为真,输出1

	int b = 10;
	printf("%d\n", !b); //b为真,!b为假,输出0
	return 0;
}
//sizeof计算大小
int main()
{
	int a = 1;
	printf("%d\n", sizeof(int));//输出4
	printf("%d\n", sizeof (a));   //输出4

	int arr[10] = { 0 };  //创建一个10个元素的数组
	printf("%d\n", sizeof(arr));  //输出为40
	printf("%d\n", sizeof(arr[0])); //输出为4
	//计算数组元素个数
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n", sz); //数组含有10个元素,输出为10
	return 0;
}
//~按位取反,即把所有二进制位中1变成0,0变成1(包括符号位)
int main()
{
	int a = 0;
	printf("%d\n", ~a);//输出-1
	//0按位取反后二进制为32个1(补码),转换成十进制为-1
	return 0;
}

原码、反码、补码

正数原码、反码、补码相同

负数:符号位(第一位)1表示负,0表示正,数学大小用二进制表示即为原码,

原码符号位不变,其余位数取反得到反码,

反码加1得到补码,补码先取反再加1得到原码

//前置++      先++,再使用
int main()
{
	int a = 10;
	int b = ++a;  
	printf("%d\n", b);  //输出为11
	printf("%d\n", a);  //输出为11
	return 0;
}
//后置++     先使用,再++
int main()
{
	int a = 10;
	int b = a++;
	printf("%d\n", b); //输出10
	printf("%d\n", a); //输出11
	return 0;
}
//强制类型转换
int main()
{
	int a = (int)3.14;  //将浮点数转换成整型
	printf("%d\n", a);
	return 0;
}

关系操作符  :> ,>=  ,< ,<= ,== ,!=

逻辑操作符

&&:逻辑与

||:逻辑或

//&&逻辑与
int main()
{
	int a = 1;
	int b = 0;
	int c = a && b;  //有一个假即为假
	printf("%d\n", c);  //输出为0
	return 0;
}
//||逻辑或
int main()
{
	int a = 1;
	int b = 0;
	int c = a || b;  //有一个为真即为真
	printf("%d\n", c); //输出为1
	return 0;
}

条件操作符(三目操作符)

exp1 ? exp2 : exp3

若exp1成立,计算exp2,整个表达式的结果为exp2的结果

若exp1不成立,计算exp3,整个表达式的结果为exp3的结果

int main()
{
	int a = 1;
	int b = 2;
	int max = 0;

	max = a > b ? a : b;
	/*相当于
		if (a > b)
		{
			max = a;
			printf("%d\n", max);
	} 
		else
		{
			max = b;
			printf("%d\n", max);
		}*/
	printf("%d\n", max);
	return 0;
}

逗号表达式:逗号隔开的一串表达式

int main()
{
	int a = 6;
	int b = 5;
	int c = 2;
	int d = (b = a + 3, c = b - 5, a = c + 1);
	//从左向右依次计算,整个表达式的结果是最后一个表达式的结果
	printf("%d\n", d);//输出5
	return 0;
}

下标引用操作符:[]

int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10 };
	printf("%d\n", arr[5]);//arr[5]中的[]即为下表引用操作符
	return 0;
}

函数调用操作符:()

结构成员操作符:.     ->

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值