这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
最近,想复习一下C语言,所以笔者将会在掘金每天更新一篇关于C语言的文章! 各位初学C语言的大一新生,以及想要复习C语言/C++知识的不要错过哦! 夯实基础,慢下来就是快!
5.地址,数组与指针的概念
问:地址可以比较大小吗?
1 | c复制代码地址可以比较大小,地址本质是个16进制的数值 |
指针和数组的关系?
指针和数组毫无关系
数组:
1 | c复制代码数组:是一块连续的空间,放的是相同类型的元素 |
1 | c复制代码如: 1.int arr[10]; |
去掉数组名->数组的类型
去掉数组名和元素个数->数组存放的元素类型
关于数组名的理解
数组名是首元素地址
但是有两个例外:
1.sizeof(数组名)-这里的数组名代表的是整个数组,计算的是整个数组的大小,单位是字节
2.&数组名-取出的是整个数组的地址
&数组名+1:跳过整个数组
指针:
指针:是一个变量,存放地址
指针是变量,是变量就有地址。所以指针变量也有自己的地址
指针变量的大小:4byte(32位平台) 8byte(64byte平台)
1 | c复制代码int a = 10; |
image.png
image.png
6.指针数组
指针数组是数组
1 | c复制代码int main() |
7.指针与结构体
关于结构体
结构体可以在main函数内部定义,但不建议
结构体类型定义并不占用空间 实际定义结构体变量才占用空间****
全局的结构体,未初始化,编译器会给它的变量默认初始化为0
**静态区的变量不初始化默认为0 **
静态区:static,全局变量
1 | c复制代码typedef struct Book |
对于上面两种传结构体的方式:传值,传址
传地址:只传过去4个字节,浪费的空间小
传值:直接开辟一个和原结构体相同大小的空间,浪费空间,会导致压栈问题
所以我们更倾向于传址方式
今天就先到这吧~感谢你能看到这里!希望对你有所帮助!欢迎老铁们点个关注订阅这个专题! 同时欢迎大佬们批评指正!
本文转载自: 掘金