C语言要点

  • 格式:doc
  • 大小:47.00 KB
  • 文档页数:2

1、C语言主要特点:
①语言简洁、紧凑,使用方便、灵活;
②运算符丰富;
③数据类型丰富;
④具有结构化的控制语句;
⑤语法限制不太严格,程序设计自由度大;
⑥允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作;
⑦用C语言编写的程序可移植性好;
⑧生成目标代码质量高,程序执行效率高。

2、一个源程序文件中可以包括三个部分:
①预处理命令
②全局声明
③函数定义
3、程序=数据结构(对数据的描述)+算法(对操作的描述)
4、一个程序设计人员应具备的知识:算法、数据结构、程序设计方法和语言工具。

5、判断一个数n(n≥3)是否素数:将n作为被除数,将2到(n-1)【可n/2或者√n】各个整数
先后作为除数,如果都不能被整除,则n为素数
6、有效算法应该具有以下特点:
①有穷性
②确定性
③有零个或多个输入
④有一个或多个输出
⑤有效性
7、结构化程序设计方法:
①自顶向下
②逐步细化
③模块化设计
④结构化编码
8、同一个字母,用小写表示的字符的ASCII代码比用大写表示的字符的ASCII代码大32,
A的ASCII代码是65。

9、switch语句用来实现多分支选择结构,break不可缺少。

10、break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语
句。

只能用于循环语句和switch语句之中,而不能单独使用。

11、有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环。

这时可以用continue语句。

12、从作用域角度分,有局部变量和全局变量。

局部变量也称内部变量,指在程序中,只在特定过程或函数中可以访问的变量。

全局变量也称外部变量,是在函数外部定义的,作用域为从变量定义处开始,到本程序文件的末尾。

全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。

在程序执行过程中它们占据固定的存储单元,而不动态地进行分配和释放。

对于局部变量来说,声明存储类型的作用是指定变量存储的区域以及由此产生的生存期的问题,而对于全局变量来说,声明存储类型的作用是变量作用域的扩展问题。

它们采用的存储类别如下:
局部变量:自动变量(离开函数值消失)、静态局部变量(离开函数值保留)、寄存器变量(离开函数值消失)。

全局变量:静态外部变量(仅限本文件引用)、外部变量(允许其他文件引用)。

13、从变量存在的时间区分,有动态存储和静态存储两种类型。

静态存储是程序整个运行时
间都存在,而动态存储则是在调用函数时临时分配单元
静态存储区存放以下数据:静态局部变量、静态外部变量、外部变量。

动态存储区存放以下数据:自动变量、寄存器变量、形式参数。

14、从变量值存放的位置来区分,可分为:
内存中的静态存储区:静态局部变量、静态外部变量、外部变量。

内存中的动态存储区:自动变量、形式参数。

CPU中的寄存器:寄存器变量。

15、在一个文件内扩展外部变量的作用域:
①外部变量有效的作用范围只限于定义处到本文件结束。

②如果用关键字extern对某变量作“外部变量声明”,则可以从“声明”处起,合法地使用
该外部变量
16、static对局部变量和全局变量的作用不同
①对局部变量,使变量由动态存储方式改变为静态存储方式。

②对全局变量,使变量局部化(局部于本文件),但仍为静态存储方式。

③从作用域角度看,凡有static声明的,其作用域都是局限的,或者是局限于本函数内
(静态局部变量),或者局限于本文件内(静态外部变量)。

17、指针是一个地址,而指针变量是存放地址的变量。

18、如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这
段存储空间的起始地址,称为这个函数的指针。

19、定义指向函数的指针变量的一般形式为:数据类型(*指针变量名)(函数参数表列);
20、栈和堆的区别
非静态的局部变量是分配在内存中的动态存储区的,这个存储区是一个称为栈的区域。

C语言还允许建立内存动态分配区域,以存放一些临时用的数据,这些数据需要时开辟,不需要时释放。

这些数据是临时存放在一个特别的自由存储区,称为堆区。

栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。

栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

堆区:亦称动态内存分配。

程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。

动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存。

但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。