初识C语言(4)关键字,指针,结构体

1.关键字 typedef

typedef意思是类型重命名。

typedef struct Node
{
	int data;
	struct Node* next;
}Node;
typedef unsigned int uint;//类型本身没有变,只是将类型名缩写一下。
int main()
{
	unsigned int num = 0;
	uint num2 = 1;
	struct Node n;
	Node n2;
	return 0;
}

2.关键字static

2.1修饰局部变量

在这里插入图片描述

局部变量a进入test函数括号内开始创建,出大括号被销毁,所以每次进入循环都要重新创建a的值,循环10次,所以打印10个a。

在这里插入图片描述

而在int前面加了static之后,第一次打印的a的值2没有被销毁,在下一次进入循环时在上次保留的值2基础上a++,依此类推,故打印2到11。

结论:static修饰局部变量时,局部变量出了作用域,不销毁的。本质上static修饰局部变量的时候,改变了变量的存储位置。程序结束之后局部变量才被销毁。影响了变量的生命周期,生命周期会变长了,和程序的生命周期一样。

在这里插入图片描述

内存有栈区,堆区,静态区。普通的局部变量是放在栈区的,而被static修饰后放在静态区。

void表示不需要返回。

2.2修饰全局变量

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

原来全局变量能在整个工程中使用,而被static修饰之后全局变量只能在当前这个文件中使用,给我们感觉全局变量的作用域变小了。

2.3修饰函数

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

3.关键字register

CPU早期从内存里面拿数据进行计算,随着技术进步CPU的处理速度越来越快,但是内存的读写速度不快,造价高。所以之后CPU从寄存器中拿数据,当处理寄存器中的数据时,可以把内存的数据往高速缓存里拿,把高速缓存的数据往寄存器中拿,只要保证大部分数据在寄存器中能找到,整体CPU速度得到提升。

如果寄存器空着没用,编译器会主动把某些数据放到寄存器中来提升读写效率。

在这里插入图片描述

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

4.#define 定义常量和宏

在这里插入图片描述

5.指针

5.1内存

内存会划分为一个个的内存单元(一个内存单元的大小:1 byte)每个内存单元都有一个编号。

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

C,C++规定,16进制数必须以 0x开头。

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

内存单元
编号->地址->地址也被称为指针
存放指针(或地址)的变量就是指针变量。

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

5.2指针变量的大小

在这里插入图片描述

在这里插入图片描述

定义3个指针变量👇

int main()
{
	int* p;
	char* pc;
	int* p1, * p2, * p3;
	return 0;
}

6.结构体

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

💎看到这里,你应该有所收获吧!感谢你的了解,更感谢您的支持❤️,点赞👍收藏⭐留言📋都是我最大的动力。

请添加图片描述

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值