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

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

文章目录
  • 1.关键字 typedef
  • 2.关键字static
    • 2.1修饰局部变量
    • 2.2修饰全局变量
    • 2.3修饰函数
  • 3.关键字register
  • 4.#define 定义常量和宏
  • 5.==指针==
    • 5.1内存
    • 5.2指针变量的大小
  • 6.结构体

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.结构体



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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/662821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存