C语言重要知识点总结(一)

本文总结了C语言中的变量存储类别,包括auto、register、extern和static,并详细解释了它们的作用域和生命周期。同时,文章还探讨了数组指针和指针数组的区别,以及内存对齐在32位体系结构中的影响,举例说明了结构体大小受内存对齐规则的影响。
摘要由CSDN通过智能技术生成

C语言重要知识点总结(一)

最近重新看了下C语言,发现先前学习的时候很多的重点都被忽略了,现在回头看发现了很多以前没有注意的东西,所以写博客记录下,方便以后可以参考查询。

  1. 变量的存储类别

    C语言中变量的存储类别有auto,register,extern和static。下面将对以下四个存储类别进行详细的介绍:
    auto:自动变量,默认的存储类型,根据变量定义的位置决定变量的生命周期和作用域。如果定义在任何一个函数的外面则编译器将改变量定为全局变量。如果定义在函数里面,则编译器则会将改变量识别为局部变量。
    register:寄存器变量,这个类别的变量会被优先分配到寄存器。通常作为循环因子的变量会被分配到寄存器。
    extern:外部变量(全局变量),该关键字用来扩展全局变量的作用域。扩展的范围是从使用extern变量开始到改文件结尾。extern关键字所做的工作只是让其他文件中的程序可以引用该变量,并不会改变这个变量的生命周期。extern修饰的一定是全局变量,修饰局部变量没有意义。
    static静态变量,以前以为用static修饰的变量是存放在堆中的,现在觉得不是。static是用于限制作用域的,被static修饰的变量存储在数据段中,无论static修饰的是全局变量还是局部变量都是被存放在数据段中的。被static修饰的变量可以细分为static全局变量和static局部变量。下面对分别对static全局变量和static局部变量从作用域和生命周期进行总结ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值