"C语言经典面试题"
以下是根据给定的文件信息生成的相关知识点:
**知识点1:局部变量与全局变量的命名冲突**
在C语言中,局部变量可以与全局变量同名。在函数内引用这个变量时,会使用同名的局部变量,而不会使用全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
**知识点2:引用已经定义过的全局变量**
可以用引用头文件的方式也可以用extern关键字来引用已经定义过的全局变量。如果用引用头文件方式来引用某个在头文件中声明的全局变量,假定你将那个编写错了,那么在编译期间会报错。如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
**知识点3:全局变量的定义**
全局变量可以定义在可被多个.C文件包含的头文件中,但需要以static形式来声明同名全局变量。在不同的C文件中可以声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。
**知识点4:自增运算符**
在C语言中,自增运算符++有两种形式:前缀形式(++a)和后缀形式(a++)。前缀形式将变量的值先加1,然后返回加1后的值;后缀形式将变量的值先返回,然后将变量的值加1。例如,int a = 10; int b = a++; int c = ++a; printf("b, c: %d, %d", b, c); 输出结果为10, 12。
**知识点5:static关键字**
static关键字可以用来修饰全局变量、局部变量和函数。static全局变量的作用域限制于定义该变量的源文件内,不能在同一源程序的其他源文件中使用。static局部变量的存储方式不同于普通局部变量,它的生存期更长,可以在函数调用之间保持其值。static函数的作用域也限制于定义该函数的源文件内,不能在同一源程序的其他源文件中使用。
**知识点6:存储方式**
C语言中的变量可以存储在不同的存储区域中,如自动存储区、静态存储区和动态存储区。自动存储区用于存储局部变量,静态存储区用于存储静态变量和全局变量,动态存储区用于存储通过malloc函数分配的内存。