小赛毛游C记——初识C语言(3)

本文详细介绍了C语言中的单目操作符,包括逻辑反、负值、正值、取地址、类型长度、位取反、前置及后置递增/递减。此外,还讲解了关系操作符、逻辑操作符、条件操作符以及常用关键字如typedef的用法。通过实例解析了各种操作符的功能和使用场景,帮助读者深入理解C语言的基础语法。
摘要由CSDN通过智能技术生成

路边的茶楼 人影错落

街上传来 两三声吆喝

人前摇扇 醒木拍桌

各位看官 你细听分说

目录

操作符 

单目操作符

关系操作符

逻辑操作符

条件操作符        逗号表达式        下标引用、函数调用和结构成员

常见关键字

1.关键词 typedef


操作符 

单目操作符

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

那我相信会有看官开始疑惑了,什么是单目操作符?其实呢这个很容易理解,各位客官们请注意

当我写下a+b的时候

a+b:对于这个 + 来说:+有两个操作数,双目操作符

        a - 左操作数

        b - 右操作数

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

!        逻辑反操作符 

int main()
{
	//C语言中,0就是假,非0就是真
	int a = 10;
	int b = !a;

	printf("b=%d\n", b);
	return 0;
}

打印一下,我们看看结果是:

那这里有些看官可能就要说了,说,小赛毛如果这个地方a是0,b会不会就变成10了?这里是显然不会的。

我们对于 ! 的用法通常是这样用的,给各位看官举个栗子:

int main()
{
	//如果flag为真做什么事情
	if (flag)
		printf("hehe\n");

	//如果flag为假,做什么事情
	if (!flag)
		printf("haha\n");

	return 0;
}

-        负值

+        正值

举个栗子:

int main()
{
	int a = -10;//负号
	int b = -a;
	int c = +10;
	c = +a;

	return 0;
}

当然这个地方对正号的使用较少。

sizeof        操作数的类型长度(以字节为单位)

什么意思呢?让我来给各位客官举个栗子:

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

计算出a所占空间大小为4个字节:

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

int main()
{
	//00010101
	//11101010
	return 0;
}

--        前置、后置--

++      前置、后置++

这个要给各位客官好好细说一通:

int main()
{
	int a = 10;
	int b = ++a;//前置++,先++,后使用
	printf("a=%d b=%d\n", a, b);//11 11
	return 0;
}

int main()
{
	int a = 10;
	//int b = ++a;//前置++,先++,后使用
	int b = a++;//后置++,先使用,后++
	printf("a=%d b=%d\n", a, b);//11 10
	return 0;
}

 b = a++翻译过来就是b=a;a=a+1; 

如果各位客官可以理解的话,那我接下来再给各位传授一下--:

int main()
{
	int a = 10;
	int b = --a;//前置--,先--,后使用
	//int b = a--;//后置--,先使用,后--
	printf("a=%d b=%d\n", a, b);//9 9
	return 0;
}
int main()
{
	int a = 10;
	//int b = --a;//前置--,先--,后使用
	int b = a--;//后置--,先使用,后--
	printf("a=%d b=%d\n", a, b);//9 10
	return 0;
}

关系操作符

关系操作符:
>
>=
<
<=
!=            用于测试“ 不相等
==           用于测试 相等

逻辑操作符

&&             逻辑与        并且
||                逻辑或        或者
逻辑操作符关注的是真假
int main()
{
	int a = 10;
	int b = 3;
	if (a == 3 && b == 4)
	{
		printf("hehe\n");
	}
}

这个代码会打印嘛?

不会的,因为没有一个1条件满足呀!

int main()
{
	int a = 3;
	int b = 20;
	if (a == 3 || b == 4)
	{
		printf("hehe\n");
	}
}

 

条件操作符        逗号表达式        下标引用、函数调用和结构成员

条件操作符

exp1 ? exp2 : exp3

逗号表达式
exp1 , exp2 , exp3 ,…  expN

下标引用、函数调用和结构成员
[]         ()         .          ->

那有些客官又要说了,先生啊,你说的我听不明白欸!

莫急,我来演示一遍:

 

//逗号表达式,从左向右依次计算

//整个表达式的结果是最后一个表达式的结果 

int main()
{
	int arr[10] = { 1,2,3,4,5 };
	//              0 1 2 3 4

	printf("%d\n", arr[4]);//[]就是下标引用操作符
	//[] - arr 4
	//3+5
	return 0;
}

int Max(int x, int y)
{
	if (x > y)
		return x;
	else
		return y;
}

int main()
{
	printf("hello");//()就是函数调用操作符
	//()的操作数是函数名printf,第二个就是"hello"
	int m = Max(2, 3);
	//() -- Max,2,3

	return 0;
}

常见关键字

auto   break   case   char   const   continue   default   do   double else   enum  
extern float   for   goto   if   int   long   register     return   short   signed
sizeof   static struct   switch   typedef union   unsigned   void   volatile   while

1.关键词 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。
//无符号的整型变量

typedef unsigned int uint;

int main()
{
	unsigned int num1 = 0;
	uint num2 = 0;
	return 0;
}

欲知后事如何 且听我下回分说

(江湖游历在外,还要多多仰仗各位衣食父母,方便的话点个赞,点个关注呗,谢谢你嘞,客官慢走)

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小赛毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值