C语言的基本运算符

C语言的基本运算符和它的基本规则

前言:C语言中提供了很多的运算符你自己怎么去用吗?今天的内容有一点多就和小羽一起来看看吧。

C运算符

C语言提供了以下的运算符:

算术运算符+ , - , * , / , % , ++ ,- -
关系运算符> , < , = , > , >= , <= , == , !=
逻辑运算符! , && , ||
位运算符<< , >> , ~ , | , ^ , &
赋值运算符=(赋值)
条件运算符? :
逗号运算符,
指针运算符*和&
求字节数运算符sizeof
强制类型转换运算符(类型)
成员运算符一>,.
下标运算符[ ]
本章先介绍算术运算符和赋值运算符,其余的在以后各章中陆续介绍,符号之间用逗号分开了

基本的运算符

算术运算符

基本和数学逻辑一样
+:+a就是加上a的值
-:-a就是减去a的值
*:*a就是乘上a的值
/:/a就是除以a的值
%:%a就是除以a的值然后取余数一个
(自增)++和(自减)-- (分前和后
++在前: ++i,–i

#include <stdio.h>
int main()
{
	int i = 5;
	printf("%d ", ++i);
	printf(" %d", --i);
}

#include <stdio.h>
int main()
{
	int i = 5;
	printf("%d ", i++);
	printf(" %d", i--);
}

在这里插入图片描述
前++:相当于先加1在用,前–同理
后++:相当于先用后加1,后–同理

下面的代码更复杂但是不常用:

int i = 5;
	printf("%d,%d,%d,%d,%d,%d\n", --i,i--,i++,++i,--i,++i);
	i = 9;
	printf("%d,%d,%d,%d,%d,%d\n", --i, ++i, i--, i++, ++i, ++i);
	i = 9;
	printf("%d,%d,%d,%d,%d,%d\n", i++, --i, ++i,i++, ++i, i--);

在这里插入图片描述
第一行:前置的++或–都等于**(–i,i–,i++,++i,–i,++i)**这里面的总和,初始为5计算之后还是5。后置的++或–从右到左以此计算
第二行:同理:初始为9计算之后还是11。后置的++或–同理
第三行:同理:初始为9计算之后还是11。后置的++或–同理
总结的规律:后置的符号在两端以定义的值为初始值从右到左计算后置的,前置的一律为总和。

关系运算符> , < , = , > , >= , <= , == , !=

跟数学中一样注意的是==和!=
如a==b是判断a等不等于b
a!=b是a不等于b

逻辑运算符! , && , ||

!(非)取反在C语言中0!为1,任何不为0的!都为0 。如:

int main()
{
	int a = 0,b=10,c=39,d=18;
	printf("%d\n", !a);
	printf("%d\n", !b);
	printf("%d\n", !c);
	printf("%d\n", !d);
}

在这里插入图片描述
&&(且) 如:1&&1或1&&2&&3 为真, 0&&1 为假。一个不满足就为假。
||(或) 如: 1||0为真 , 0||0为假。 一个满足就OK

#include <stdio.h>
int main()
{
	printf("%d\n", 3 || 2 ||0);
	printf("%d\n", 3 && 2 && 3);

}

在这里插入图片描述

位运算符<< , >> , ~ , | , ^ , &

它们都是基于二进制来用的。
在这里插入图片描述

#include <stdio.h>
int main()
{
	int a = 1,b=3;
	a = a >> 4;
	b = b1<< 1;
	printf("%d\n", a );
	printf("%d\n", b);
}

在这里插入图片描述

int main()
{
	int a = 1,b=2,c=4,d=7;
	printf("%d,%d,%d\n", c ^ d, d | c, d & c);
	printf("%d\n", ~a );
	printf("%d\n", ~b);
}

在这里插入图片描述
在这里插入图片描述

赋值运算符=

就是如a=4这一些

条件运算符? :

相当于一对if–else
如:c=a>b?a:b 。如果a>b就c=b,否则c=b.

逗号运算符,

#include <stdio.h>
int main()
{
	int a;
	a = (2, 3, 5, 7, 4, 0);
	printf("%d\n",a);
	a = (2, 3, 1, 8, 5, 4);
	printf("%d\n", a);
	
}

在这里插入图片描述
观察可以看出把逗号表达式的最后一个数给了c

指针运算符 *和&

&是取地址
*解引用

int main()
{
	int a=2;
	int* p=&a;//是把a的给指针p
	*p=20;//a的值也会改变相当于他们用的同一个房间,房间的东西发生了变化都会变
	return 0;
}

求字节数运算符sizeof

简单介绍用法

int main()
{
	int a=0;
	printf("%d\n", sizeof a);
	
}

在这里插入图片描述
int型就站4个字节

强制类型转换运算符(类型)

int main()
{
	int b = 5,a=4;
	double c = b / a;
	printf("%lf\n",  c);	
}

在这里插入图片描述
可以发现小数部分全是0,如果想要高的精准度就改double c =(double) b / a;
在这里插入图片描述

成员运算符|一>,.

这个是结构体用的 如:

struct Student {   
	char ID[20];//学号 
	char Name[10];//姓名 
}students[10];

students[1].ID==students[1]一>ID
students[1].Name==students[1]一>Name

下标运算符 [ ]

用于数组
在这里插入图片描述
数组a是从数组a[0]开始存放的。

总结:

         这一些都是很常用的运算符我们一定要牢牢地掌握&&要熟练的运用它们,以后写算法可以快速的想起它们的个种用法。咱们下期见!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值