华为软件研发笔试:C语言基础题目解析

需积分: 0 4 下载量 113 浏览量 更新于2024-09-18 收藏 53KB DOC 举报
这篇内容主要涉及的是C语言的基础知识,与华为软件研发笔试题目相关,适合对C语言有一定了解并希望进入华为工作的求职者参考。以下是这些知识点的详细说明: 1. 局部变量与全局变量的重名问题: 在C语言中,局部变量和全局变量可以同名。在函数内部定义的局部变量会遮蔽同名的全局变量。如果在函数内部需要使用全局变量,可以使用作用域解析运算符`::`来明确指定全局变量。例如,`global_var = ::global_var;`。 2. 引用全局变量的方法: 要引用已定义的全局变量,可以使用`extern`关键字。在需要使用全局变量的源文件中,添加`extern`声明即可。另一种方法是在包含头文件时,通过头文件将全局变量的声明引入,但这种方式下,如果头文件中的声明错误,编译阶段就会报错,而使用`extern`则会在链接阶段报错。 3. 全局变量在头文件中的使用: 全局变量可以在头文件中定义,并可在多个.C文件中包含。但是,为了避免命名冲突,可以使用`static`关键字来声明同名的全局变量。`static`全局变量仅在其定义的源文件中可见,不会在其他包含该头文件的源文件中产生影响。 4. C语言代码示例输出: 下面的代码会输出:`b,c,d:10,12,120`。这是因为`a++`和`++a`是自增操作,`a++`先使用然后加1,而`++a`先加1然后使用。所以在`b`赋值时,`a`的值是10,`c`赋值时`a`的值是11,`d`的赋值操作发生在`c`之后,所以`a`的值为12,乘以10得到120。 5. `static`关键字的不同用法: - 静态全局变量(static全局变量):与非静态全局变量相比,其作用域仅限于定义它的源文件。这样可以防止不同源文件之间的全局变量冲突,提高代码的封装性。 - 静态局部变量(static局部变量):它的生命周期贯穿于整个函数调用过程,即使函数多次调用,静态局部变量的值也不会被重置。它只在定义它的函数内部可见,与其他局部变量相比,它不会在每次函数调用时重新初始化。 - 静态函数(static函数):这样的函数只在其定义的源文件中可见,不能被其他源文件直接调用,增加了函数的封装性,减少了名字冲突的可能性。 这些知识对于理解C语言的基本特性和华为软件研发笔试的考察点非常重要。熟悉这些概念有助于应对类似的技术面试或笔试。