C c++ 语言 面试题 大汇 总 之 华为 面试题 笔试题
1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 【C/C++语言面试题详解】——华为面试必备 在编程面试中,了解并掌握C/C++语言的基础知识是至关重要的。以下是一些常见的C/C++面试题及其解析: 1. 局部变量与全局变量的重名问题: 局部变量可以与全局变量同名,但在函数内部,局部变量会屏蔽全局变量。如果需要访问全局变量,可以使用作用域解析运算符 `::`。例如,`::global_variable` 会直接引用全局变量。在同一个函数内部,甚至可以定义多个同名的局部变量,它们的作用域限于各自的代码块。 2. 引用全局变量的方法: 全局变量可以通过在头文件中声明或使用 `extern` 关键字来引用。头文件中声明的全局变量,如果写错名称,编译阶段会报错;而使用 `extern` 关键字时,编译阶段不检查,连接阶段才报错。 3. 全局变量在头文件中的使用: 可以在头文件中定义全局变量,但为了避免命名冲突,通常会使用 `static` 关键字。这样,每个包含该头文件的C文件都有自己的副本,不会相互影响。 4. `for( ; 1 ; )` 语句: 这个语句相当于无限循环,与 `while(1)` 的效果相同。 5. `do...while` 与 `while...do` 的区别: `do...while` 会先执行循环体,然后检查条件,因此至少执行一次。而 `while...do` 先检查条件,满足时才执行循环体。 6. 代码输出: ```c #include<stdio.h> main() { int a, b, c, d; a = 10; b = a; c = a; d = 10 * a; printf("b, c, d : %d, %d, %d", b, c, d); return 0; } ``` 输出:`b, c, d : 10, 10, 120` 7. `static` 关键字的理解: - `static` 全局变量:只在当前源文件内有效,避免了不同文件间的命名冲突。 - `static` 局部变量:只初始化一次,保留上一次的值,不同函数调用间保持状态。 - `static` 函数:仅在当前源文件可见,不污染全局符号表,减少链接时的错误可能性。 8. 内存区域: - 局部变量:存在于栈区,函数调用结束时自动释放。 - 全局变量:存在于静态区,程序运行期间始终存在。 - 动态申请数据:存在于堆区,通过 `malloc` 或 `calloc` 等函数申请,需手动释放。 9. 数据结构与内存大小: - `DATE` 是一个联合体,占用的内存等于其中最大成员的大小,即5个整型的大小,20字节。 - `struct data` 包含一个整型、一个DATE和一个双精度浮点型,分别占用4、20和8字节,共32字节。所以,`sizeof(struct data)` 为32,`sizeof(max)` 为20,输出结果是52。 10. 队列与栈的区别: - 队列遵循先进先出(FIFO)原则,元素按顺序入队和出队。 - 栈遵循后进先出(LIFO)原则,最后进入的元素首先被移出。 11. 函数返回值: ```c int inc(int a) { return a + 1; } int main() { printf("%d", inc(10)); return 0; } ``` 输出:`11` 了解这些基本概念和技巧对于C/C++程序员来说至关重要,特别是在面试和解决实际问题时。熟练掌握这些知识点能够帮助开发者编写更加高效和可靠的代码。
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/2169285/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/2169285/bg2.jpg)
剩余8页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/d478730eb0644f8bad3c8abbce49d96d_a406226715.jpg!1)
- 粉丝: 40
- 资源: 69
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)