初识常见关键字

C语言中的关键字

1.字符类型

char           (字符数据类型)
short          (短整型)
int              (整型)
long           (长整型)
long long  (更长的整型)
float           (单精度浮点数)
double       (双精度浮点数)

auto(是自动的)

break(跳出循环)

case(swich类型语句)

const(常变量,修饰变量)

continue(继续)

default(默认)

do(do while循环)

else(语句)

enum(枚举)

extern(声明外来符号)

for(for循环)

goto(goto语句)

if(if语句)

register(寄存器关键字)建议去放到寄存器里面去

return

signed(描述的数字有符号的)

unsigned

sizeof(求大小)

static(静态的)

struct (结构体关键字)

swich(swich语句)

typedef(类型定义)

union(联合体,共用体)

void (空)

volatile(高级 现在还不用懂..=-=)

while(while循环)

1c语言提供的,不能自己创建关键字

2.变量名不能是关键字

补充

      define   include  是预处理指令  不是关键字

auto

是自动的

(每个局部变量都是auto修饰的)

	int a = 10;

    自动创建自动销毁的

    auto省略掉了 原来是 auto  int   a  =  10

新的c语言语法中也有其他的用法

register

register int num = 100;

建议num的值存放再寄存器中

大量频繁被使用的数据,放在寄存器中,提高效率。

注意只是建议

编译器说了才算

  在计算机里面数据的存储

         1网盘               2T

         2.硬盘             500G

         3.内存             8G-16G

         4.高速缓存      几十mb

         5.寄存器          更小

越往下     造价越高  速度越快  空间越小

typedef(类型定义)

typedef unsigned int u_int;
int main()
{
	unsigned int num = 100;
	u_int num2  = 100;

	return 0;
}

在typedef的类型定义下

                  u_int  与  unsigned int  是一样的

static(静态的)

1.修饰局部变量

2.修饰全局变量

3.修饰函数

(1)修饰局部变量 

#include<stdio.h>
void test()
{
	int a = 1;
	a++;
	printf("%d", a);
}
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}

	return 0;
}

输出是2222222222

  

#include<stdio.h>
void test()
{
	static   int a = 1;
	a++;
	printf("%d\n", a);
}
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}

	return 0;
}

输出是234567891011

static修饰了a  使得在循环test中并没有直接被销毁  后面a被反复利用了

改变了局部变量(a)的生命周期(本质上改变了变量的存储类型)

内存的划分为几个区

1.栈区    (局部变量、函数的参数,只要是局部的,临时的变量)

2.堆区    (动态内存分配)

3.静态区(全局变量、static修饰的静态变量)

 a未被static修饰的时候是放在栈区的

而之后被static修饰后放在静态区

所以本质上改变了变量的存储类型

我们可以看全局变量的生命周期来类比static修饰的静态变量

static修饰的静态变量的生命周期很长(紧随程序的运行)

(2)修饰全局变量

static   int a = 2022;
#include<stdio.h>
extern  int a;
int main()
{
	printf("%d\n",a);
	return 0;
}

static修饰全局变量就使得这个全局变量只能在自己所在的源文件(.c)内部可以使用

其他源文件不能使用

全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性

但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全部变量了

(3)static修饰函数

static  int Add(int x,int y)
{
	return x + y;
}
#include<stdio.h>
extern   int Add(int x, int y);
int main()
{
	int a = 10;
	int b = 20;
	int sum = Add(a, b);
	printf("%d\n",sum);
	return 0;
}

static修饰函数,使得函数只能在自己所在的源文件(.c)内部使用,不能在其他源文件内部使用

本质上:static是将函数的外部链接属性变成了内部链接属性!(和static修饰全局变量一样) 

#define定义常量和宏

define是一个预处理指令

(1)定义常量

#include<stdio.h>
#define a 2022

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

(2)定义宏

#include<stdio.h>
#define Add(X,Y)  X+Y

int main()
{
	printf("%d\n",Add(1+2));
	return 0;
}

输出为3

但是我们在Add前加入4*

printf("%d\n", 4 * Add(1, 2));

并不等于我们想让的4*Add中的值

而是4*1+2

输出6

我们应在deine定义宏时要将变量括起来

#define Add(X , Y)  ((X)+(Y))

输出就为我们想要的12

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值