当前位置:首页c语言 > 正文

全国计算机等级考试二级C语言知识复习资料之深入讨论

作者:野牛程序员:2023-11-30 11:31:31c语言阅读 2509

第十二章 深入讨论

【考点1】编译预处理

凡以#开头的这一行,都是编译预处理命令行,编译预处理不加分号,不占运行时间。宏替换仅是简单的文本替换,如#define  f(x)  (x)*(x)#define  f(x)  x*x替换f(2+2)时就有区别,前者展开为(2+2)*(2+2),后者为2+2*2+2

如果源文件f2.c中有#include"f1.c"可以理解为把源文件f1.c原样包含到f2.c中,使f1.cf2.c融合到一起成为一个C程序编译。所以一个C程序必有主函数,但一个C源文件未必有主函数。

【考点2】标识符作用域

局部变量是在函数内或复合语句内定义的变量,作用域为定义它的函数内。局部变量有三种类型:自动auto,寄存器register和静态static

自动变量随着函数的使用与否创建消失;寄存器变量分配在cpu中,没有内存地址;静态变量占用固定存储单元,在程序执行过程不释放,直到程序运行结束。

全局变量是在函数外定义的变量,作用域从定义它的位置到整个源文件结束为止,生存期为整个程序运行期间。全局变量都是静态变量。

【考点3】动态存储分配

malloc(size)用来创建连续size个字节存储区,返回值类型为void *型。malloc函数常用于动态创建链表结点,如int *p; p=(int *)malloc(sizeof(int));

callocn,size)创建n个同一类型的存储空间,可以理解为nmalloc

free(p)释放动态分配的存储单元。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击