32个关键字详解①(C语言)

目录

关键字分类:

第一个C程序 - 补充内容

变量的定义与声明 - 补充内容

变量的分类 - 补充内容

变量的作用域 - 补充内容

变量的生命周期 - 补充内容

auto 关键字

register 关键字

static 关键字

static 修饰变量:

static修饰函数

sizeof 关键字

基本数据类型:

sizeof介绍:

signed、unsigned 关键字

整型在内存中的存储:

大小端 补充

整型取值范围

if else 关键字

什么是语句:

什么是表达式:

if else 语句:


关键字分类:

C语言中总共有多少个关键字呢?一般我们所见的书上都是32个,但是这些书是按照C90或C89的标准,其实C99后又新增了5个关键字,不过我们目前的主流编译器,对C99的支持并不好,接下来我们主要按照C90标准来讲解,即认为32个关键字!接下来我们先简单看一下这32个关键字:

下面我们一个一个的来详解这32个关键字 

在了解之前我们得深入认识理解一些知识:

第一个C程序 - 补充内容

以代码的形式解释说明:

//编写第一个C程序"hello world"
#include <stdio.h>
int main()
{
	printf("hello world!\n");

	return 0;
}
//运行程序的方式,当然可以用vs直接启动
//当然,也可以在vs项目中,找到代码生成的二进制可执行程序,双击即可。
//所以:我们的角色是写代码,编译器的角色是把文本代码变成二进制可执行程序。
//双击?不就是windows下启动程序的做法吗?
//那么启动程序的本质是什么呢?就是将程序数据,加载到内存中,让计算机运行!

变量的定义与声明 - 补充内容

因为有些关键字是用来修饰变量的,我们在介绍关键字之前,先来深度了解一下变量!

什么是变量(是什么)?

        在内存中开辟特定大小的空间,用来保存数据!

如何定义变量(怎么用)?

        int x =10;

        char c='a';

        double d=3.14;

        类型 变量名 = 默认值;

为什么要定义变量?

        计算机是为了人类计算能力不足的问题而诞生的,即,计算机是为了计算的。而计算,就需要数据,而在计算的时候,任何一个时刻,不是所有在内存中的数据立马被计算,有时部分数据是不参与运算的,而不需要计算的数据就要被临时的保存起来,等待后续处理,而这些数据我们用变量保存!以供我们后续的使用,使用那个数据就拿取其对应的变量即可!

变量定义的本质

        我们知道:1、程序运行需要加载到内存。2、程序计算需要使用变量。那么定义变量的本质就是:在内存中开辟一块空间,用来保存数据(为何一定要保存到内存?因为定义变量也是程序逻辑的一部分,程序已经加载到内存中了,所以变量是在内存中定义的!)

变量声明的本质

        通俗一说就是提前告诉编译器我定义了一个变量!

注意:定义只能有一次,而声明可以有多次!

变量的分类 - 补充内容

局部变量:

        包含在代码块也就是大括号{}中的变量叫做局部变量,局部变量具有临时性。进入代码块,自动形成局部变量,出了代码块自动释放!

全局变量:

        在所有函数外定义的变量,叫做全局变量,全局变量具有全局性!

代码块:

        用{}括起来的区域,就是代码块

上代码:

#include <stdio.h>
int g_value = 20;//全局变量
int main()
{
	//main函数也是函数,也有{}代码块!
	int a = 10;//局部变量
	printf("%d\n", a);

	return 0;
}

变量的作用域 - 补充内容

作用域的概念:

        变量的作用域指的是该变量可以被正常访问的代码区域!

局部变量的作用域:

        作用域也就是该变量的作用范围,通俗点说就是该变量只能在定义它的代码块{}内使用,而出了代码块就不能使用了!

全局变量的作用域:

        全局变量具有全局性,在整个程序运行期间都有效,作用于整个程序!

上代码:

//局部变量
//只作用于本代码块{}
#include <stdio.h>
int main()
{
	int x = 10;
	if (x == 10) 
	{
		int y = 20;
		printf("局部: x: %d, y: %d\n", x, y);//y只能在本代码块内有效
	}
	printf("局部: x: %d, y: %d\n", x, y); //报错,y不能被访问

	return 0;
}

//全局变量
//作用于整个程序
#include <stdio.h>
int sum = 100;//全局变量
void test(void)
{
	printf("test 全局:%d\n", sum);
}
int main()
{
	printf("main 全局:%d\n", sum);
	test();

	return 0;
}


//全局变量和局部变量命名冲突时
#include <stdio.h>
int a_b = 25;//全局变量
int main()
{
	int a_b = 30;
	printf("%d\n", a_b);//30
	//局部变量和全局变量命名冲突时,优先使用局部变量!
	//强烈不建议这样写

	return 0;
}

变量的生命周期 - 补充内容

生命周期:

        指的是该变量从定义到释放的时间范围,所谓释放,指的是曾经开辟的空间被释放!

局部变量的生命周期:

        进入代码块,形成局部变量也就是开辟空间,生命周期开始,退出代码块,释放 局部变量,生命周期结束!

全局变量的生命周期:

        定义完成之后,程序运行的整个生命周期内,该变量一直有效!

生命周期通俗点讲,可以理解为变量存活的时间,局部变量的作用域跟生命周期都是在出了代码块就失效了,也就是出代码块就死了,而全局变量的生命周期就是整个程序结束才失效!

        

auto 关键字

最宽宏大量的关键字-auto

一般定义在代码块中的变量,即局部变量,默认都是由auto修饰的,不过省略不写!auto关键字一般默认修饰局部变量,而全局变量不是默认auto 修饰的!注意:我们所听到的,局部变量,自动变量,临时变量,都是一回事,我们统称为局部变量!

上代码:

#include <stdio.h>
//全局变量不是默认auto修斯的
auto int g_va = 100;//vs编译器会有警告

int main()
{
	//局部变量默认都是由auto修饰的不过一般省略不写
	auto int a = 10;
	
	//auto修饰局部变量i
	for (auto int i = 0; i < 10; i+
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值