操作符简介及部分例子

操作符


c语言提供了非常丰富的操作符,使得用起来就比较灵活。

1.简单介绍

算法操作符

+ - * / %

/ 是除后取整,% 是除后取余

#include <stdio.h>

int main() {
	int a = 7;
	int b = 2;
	//除号的两端都是整数的时候执行整数除法
	int c = a / b;
	int f = a % b;//取模(取余)
	//如果两端只要有一个浮点数就执行浮点数除法
	float e = a /2.0;
	printf("%d\n", c);
	printf("%.2f\n", e);//.2是取到小数点后两位的意思
	printf("%d\n", f);
	return 0;
}

移位操作符

>> <<

位操作符

& ^ |

赋值操作符

= += -= *= /= &= ^= |= >>= <<=

关系操作符

> >= < <= != ==

双目操作符 + //

单目操作符 - 只有一个操作数的操作符

!逻辑反操作
-负值
+正值
&取地址
sizeof操作数的字符长度(以字节为单位)
~对一个数的二进制按位取反
--前置、后置--
++前置、后置++
*间接反问操作符(解引用操作符)
(类型)强制类型转换
### 1.1单目操作符size与函数的区别

sizeof作为单目操作符与函数的区别:

调用sizeof可以不加括号,在语法允许的情况下。

#include <stdio.h>

int main() {
	int a = 0;
	printf("%d\n", sizeof(a));//输出:4
	printf("%d\n", sizeof(int));//输出:4,int的大小必须要加括号,否则语法不允许
	printf("%d\n", sizeof a);//输出:4,因为是单目操作符,所以括号可写可不写


	int arr[10] = { 0 };
	printf("%d\n", sizeof(arr));//输出:40,整个数组的大小,单位是字节
	printf("%d\n", sizeof(arr[0]));//输出:4,一个整型元素的大小
	printf("%d\n", sizeof(arr) / sizeof(arr[0]));//输出:10,元素的个数


	return 0;
}

1.2"++“和”–"前置与后置的区别

++ 和 --前置后置的自增规则,下方代码为自增,自减规律同下:

int main() {
	int a = 10;
	int b1 = a++;//输出:10,后置++,先赋值,后自增
	int c = 10;
	int d1 = ++c;//输出:11,前置++,先自增,后赋值

	printf("%d\n", b1);
	printf("%d\n", a);//输出:11
	printf("%d\n", d1);
	printf("%d\n", c);//输出:11
}

前置自增,先赋值后自增;后置自增,先自增后赋值。

2.强制类型转换

使用:(类型)数据,的格式进行强制类型转换

代码中,字面的浮点型系统会默认是double类型的,虽然不会报错

int e = 3.14;//字面的浮点型系统会默认是double类型的
int f = (int)3.14;//括号 类型 括号(类型),强制类型转换,这里将double类型转换为整型
printf("%d\n", e);
printf("%d", f);

2.1=与==的区别

“=” 为赋值,“==”才是判断

	int g = 3;
	if (g = 10) {
		printf("这里的g=10是赋值,不是判断,所以g的值为:%d\n", g);
	}

逻辑操作符

&& 逻辑与(两者都,为真)
|| 逻辑或(二者只要一个为真,就为真)

3.条件操作符及格式

格式:

exp1?exp2:exp3 //条件exp1满足的话,结果为exp2;条件不满足的话,结果为exp3

代码示例:

	int a = 10;
	int b = 20;
	int r = (a > b) ? a : b;//a<b,条件为假,则结果为b
	printf("%d", r);
//输出:20

4.逗号表达式

公式从左到右计算,计算结果为最右边的公式的结果

exp1,exp2,exp3……expn

例子:

	int a = 6;
	int b = 4;
	int c = (a + b, a - b, a * b);//最后的结果为:a*b(最右边的公式)
	printf("%d", c);
//输出:24

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

[]  ()  .  ->

[] () . ->

5.1下标引用操作符"[]"

下标引用操作符是"[]“,但定义数组的”[]",不是下标引用操作符

	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };//这里的[]是定义数组的符号,不是下标引用操作符
	int a = 3;
	printf("%d", arr[a]);//[]就是下标引用操作符,arr和3就是操作数

5.2函数调用操作符

函数调用操作符"()"

	int add(int a, int b){
		int z = a + b;
		return z;
	}
	int main() {
		int result = add(2, 3);//()就是函数调用的操作符,add,2,3就是()的操作数,括号不能省略
		printf("%d", result);
		return 0;
	}

操作符,arr和3就是操作数


### 5.2函数调用操作符

函数调用操作符"()"

```c
	int add(int a, int b){
		int z = a + b;
		return z;
	}
	int main() {
		int result = add(2, 3);//()就是函数调用的操作符,add,2,3就是()的操作数,括号不能省略
		printf("%d", result);
		return 0;
	}
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值