C语言之“语法框架”

整型浮点加数组,结构共用与枚举。
算术关系逻辑布,顺序条件共循环。
函数复用力无穷,指针威力与天通。
静态有无内外链,自动动态栈堆间。
字符流淌输入出,文件永存信息笺。

1 语法框架

在这里插入图片描述

2 语言重点

2.2 变量存储类别

关系大型程序的多文件组织问题,非常关键。

  • 静态变量:存储在全局数据区,程序运行期间一直存在。包括外部链接静态变量(在所有函数外声明的文件变量,其他文件可通过extern引用)、内部链接静态变量(在所有函数外声明的文件变量,static修饰,不能被其他文件引用)、无链接静态变量(在函数内声明的局部变量,static修饰)。
  • 自动变量:在函数内声明的局部变量,无static修饰,函数运行结束自动释放内存,又称为栈变量。
  • 堆变量:采用malloc动态申请内存的变量,又称堆变量,需手动释放内存。
  • 常数:包括字符串字面量、用const修饰的全局变量,存在与常量区。

2.2 字符串存储位置

关系到字符指针实际指向问题。

  • 凡是用char str[]形式声明的字符串,均单独开辟存储空间,与同类变量存储位置相同。
  • 凡是用char*形式声明的字符串,除动态分配内存外,均引用字符串字面量池中的对象。
  • 动态分配内存的字符串变量,存在于堆中。

2.3 指针与数组

  • 指针名和数组名均返回数据首元素地址。
  • sizeof()用于数组名时,返回数组所有元素大小之和,应用于指针名,仅返回指针本身所占的内存大小。
  • 指针加减一整数,表示移动了多少个变量所占内存大小的单元。

3 思考

关于“形式与内容”的思考:
越来越觉得,要想熟练掌握一门知识或技能,形式和内容都至关重要。要么先有零散内容,后总结归纳形成系统框架;要么先有框架,再向框架中填充内容。总之,知识必须结构化。

关于“全面与重点”的思考:
如同框架和内容的关系,“全面”是指框架要成系统;但学习具体内容时,应抓住重点,因为这才是能力提升的瓶颈所在。对于过于简单的知识点,不在框架中分节发散,以减少形式上的繁琐;对于重点且有难度的知识点,应集中火力突破,并通过理解的逐渐加深,最终将其转化为简单知识点。
因此,我推荐的学习方法是,先搭建整体知识框架,对重点和难点进行形式上的扩展,通过不断加深理解,将其转变为简单知识点,并进行形式上的简化,总而言之“由少至多,从多到少”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值