【C语言】操作符+关键字+define

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/–>阿里云<–/–>华为云<–/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。

💡1、操作符

1️⃣算术操作符

+  -  *  /  %

2️⃣移位操作符

>>右移  <<左移
移动的是二进制位

3️⃣位操作符

&按位与   |按位或  ^按位异或
比较的是二进制位

4️⃣赋值操作符

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

5️⃣单目操作符

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

6️⃣关系操作符

>
>=
<
<=
!=   用于比较算式两端是否“不相等”
==   用于比较算式两端是否“相等”

7️⃣逻辑操作符

&&逻辑与    ||逻辑或

8️⃣条件操作符(三目操作符)

//exp1 ? exp2 : exp3
#include <stdio.h>
int main()
{
    int a = 1;
    int b = 2;
    int c = a > b ? a:b;//a是否大于b?为真返回a,为假返回b,此处c==2
    printf("%d", c);
    return 0;
}

9️⃣逗号表达式

//exp1, exp2,exp3,······expN
int main()
{
    int a = 10;
    int b = 20;
    int c = 0;
    int d = (c=a-2, a=b+c, c-3);//逗号表达式从左往右计算,结果是最后一个表达式的值,该处d==5
    printf("%d\n", d);
    return 0;
}

🔟其他操作符

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

💡2、关键字

1️⃣常见关键字

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

注:用户自己不能创建关键字。

2️⃣关键字static

1、修饰局部变量

void test()
{
	static int a = 1;
	a++;
	printf("%d ", a);//输出结果为2 2 2 2 2 2 2 2 2 2 
}

int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

static修饰函数中局部变量:(局部变量存储位置由堆区至静态区)
生命周期延长:该变量不随函数结束而结束
初始化:只在第一次调用该函数时进行初始化
记忆性:后续调用时,该变量使用前一次函数调用完成之后保存的值
存储位置:不会存储在栈上,放在静态区。

在这里插入图片描述

2、修饰全局变量及函数

//源文件1
extern int m;
extern int Add(int a,int b);
int main()
{
    int a=0;
    int b=0;
    Add(a,b);//声明源文件2的Add函数,但Add被static修饰,仍无法被源文件1使用
    printf("%d\n",m);//声明源文件2的全局变量m,但m被static修饰,仍无法被源文件1使用
    return 0;
}
//源文件2
static int Add(int a,int b)//static修饰函数
{
    return a+b;
}
static int m;//创建static修饰的全局变量

static修饰的全局变量:改变该变量的链接属性,让该变量具有文件作用域,即只能在当前文件中使用,static修饰变量时,没有被初始化时会被自动初始化为0;
static修饰函数:改变该函数的链接属性,让该函数具有文件作用域,即只能在当前文件中使用。

3️⃣关键字register(寄存器变量)

int main()
{
	//寄存器变量
	register int num = 3;//建议将3存放在寄存中
	return 0;
}

未命名绘图.drawio.png
由于以上特性,故不能将大量数据存放至寄存器中,只是建议将register修饰的变量存放至寄存器中。

💡3、其他要点

1️⃣预处理指令define(define不是关键字)

1、define定义标识符常量

#define NUM 100;

2、define定义宏

#define ADD(x,y)  ((x)+(y))
int main()
{
	int a = 10;
	int b = 20;
	int c = ADD(a, b);
	printf("%d\n", c);
	return 0;
}

未命名绘图.drawio.png

相关推荐:适合初级学习的C语言教程(1)
以上文案为某位不愿意透露姓名的计算机菜鸟所书,可能存在错误,请您指正!
点点赞!点点赞!点点赞!点点赞!点点赞!点点赞!点点赞!点点赞!点赞!
点点关注!点点关注!点点关注!点点关注!点点关注!点点关注!点点关注!

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蒋灵瑜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值