1.如何理解库函数 ?
答︰库函数,即标准函数。这是由系统提供的,用户不必自己定义这些函数,可以直接使用它们。不同的 C系统提供的库函数的数量和功能会有一些不同,当然许多基本的函数是共同的。库函数并非 C语言本身的组成部分,而是 C编译系统为方便用户使用而提供的公共函数。不同的编译系统提供的函数数量和函数名、函数功能都不尽相同,使用时要小心,必要时查一下库函数手册。
2.typedef 和 define 有什么区别?
答︰
1、用法不同:typedef 用来定义一种数据类型的别名,增强程序的可读性。define 主要用来定义常量,以及书写复杂使用频繁的宏。
2、执行时间不同:typedef 是编译过程的一部分,有类型检查的功能。define 是宏定义,是预编译的部分,其发生在编译之前,只是简单的进行字符串的替换,不进行类型的检查。typedef int COUNT;和#define COUNT int的作用都是用 COUNT 代表int。但事实上,它们二者是不同的。#define 是在预编译时处理的,它只能作简单的字符串替换,而typedef 是在编译时处理的。实际上它并不是作简单的字符串替换,而是采用如同定义变量的方法那样来声明一个类型。
3、作用域不同:typedef 有作用域限定。define 不受作用域约束,只要是在 define 声明后的引用都是正确的。
4、对指针的操作不同:typedef 和 define 定义的指针是有很大的区别。
5、typedef 定义是语句,因此句尾要加上分号。而 define 不是语句,不能在句尾加分号。
3.空指针和未初始化的指针是一回事吗?
答︰空指针在概念上不同于未初始化的指针;空指针可以确保不指向任何对象或函数;而未初始化指针则可能指向任何地方。
4.关键字static有什么用途?(有什么作用)
答︰关键字static有三个明显的作用:
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。也就是,这个函数被限制在声明它的模块的本地范围内使用。
5.局部变量能否和全局变量重名?
答︰可以重名,局部变量会屏蔽全局变量。