您的位置:首页 > 编程语言 > C语言/C++

c语言小知识点总结

2016-06-09 20:29 337 查看
1、.h 头文件中的 ifndef/define/endif 的作用?

答:防止该头文件被重复引用。

2、简述 sizeof 和 strlen 的区别。

(1)sizeof 是一个操作符,strlen 是库函数。

(2)sizeof 的参数可以是数据的类型,也可以是变量,而 strlen 只能以

结尾为‘\0‘的字符串作参数。

(3)编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在

运行时才能计算出来。并且 sizeof 计算的是数据类型占内存的大小,

而 strlen 计算的是字符串实际的长度。

(4)数组做 sizeof 的参数不退化,传递给 strlen 就退化为指针了。

3、&&和&、||和|有什么区别。

答:(1)&和|对操作数进行求值运算,&&和||只是判断逻辑关系。

(2)&&和||在在判断左侧操作数就能确定结果的情况下就不再对右侧

操作数求值。

4、typedef 和 define 有什么区别。

答:(1)用法不同:typedef 用来定义一种数据类型的别名,增强程序的可

读性。define 主要用来定义常量,以及书写复杂使用频繁的宏。

(2)执行时间不同:typedef 是编译过程的一部分,有类型检查的功能。

define 是宏定义,是预编译的部分,其发生在编译之前,只是简单的进

行字符串的替换,不进行类型的检查。

(3)作用域不同:typedef 有作用域限定。define 不受作用域约束,只要

是在 define 声明后的引用都是正确的。

(4)对指针的操作不同:typedef 和 define 定义的指针时有很大的区别。

5、简述指针常量与常量指针区别。

答:指针常量是指定义了一个指针,这个指针的值只能在定义时初始化,

其他地方不能改变。常量指针是指定义了一个指针,这个指针指向一

个只读的对象,不能通过常量指针来改变这个对象的值。

指针常量强调的是指针的不可改变性,而常量指针强调的是指针对其

所指对象的不可改变性。

6、描述内存分配方式以及它们的区别?

1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块

内存在程序的整个运行期间都存在。例如全局变量,static 变量。

2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在

栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运

算内置于处理器的指令集。

3) 从堆上分配,亦称动态内存分配。程序在运行的时候用 malloc 或

new 申请任意多少的内存,程序员自己负责在何时用 free 或 delete

释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也

最多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言