C++面试必备:开发工程师试题集锦
需积分: 1 91 浏览量
更新于2024-07-26
收藏 134KB DOC 举报
"C++面试题1"
C++面试题主要涵盖了语言特性和编程实践,以下是对提供的部分内容的详细解析:
1. 变量存储位置:
- 全局变量`int(*g_pFun)(int);`:全局的函数指针,存储在数据段(A)。
- `myFunction`赋值给`g_pFun`,`myFunction`的代码位于代码段(B)。
- 静态内部变量`static int nCount;`:静态变量通常存储在数据段或BSS段(A)。
- 函数内部的字符数组`char p[]="AAA";`:由于是局部数组,空间在栈中(C)。
- 字符串常量`"AAA"`的指针`char *p="AAA"`:存储在程序文本段(代码段)或rodata段(E),依赖于编译器。
- 动态分配的字符指针`char *p = new char;`:`p`本身在栈上(C),指向的空间在堆上(D)。
2. 程序输出:
- 给定程序的输出是未定义的,因为访问了未初始化的内存(G)。`&num+1`实际上是数组的指针加上一个元素的大小,相当于指向下一行的地址,减去1则回到数组末尾,但这里的类型转换使得访问的不是一个有效的内存地址,因此结果是未定义的。扩展题目中,`*((int*)(num+1)-1)`的结果是1(A),因为`num+1`是指向数组第二个元素的指针,减1后回到第一个元素,即`num[0]`。
3. 程序间通信方式:
- A. 信号(Signals):通常用于进程间通信,但不是可靠的,可能被其他信号中断。
- B. 管道(Pipes):用于同一主机内的进程间通信,单向且不可靠。
- C. TCP(Transmission Control Protocol):跨主机可靠的双向通信协议。
- D. UDP(User Datagram Protocol):跨主机的不可靠的、无连接的通信协议。
- E. PIPE:在某些系统中,命名管道可以实现跨机器通信。
- F. 串口I/O:可用于跨主机的通信,可靠性取决于物理连接。
4. C++类成员:
- `class A`中的`funa()`和`funb()`是虚函数,用于多态性。
- `fun()`是普通成员函数,没有关键字`virtual`。
- `fund()`是静态成员函数,不与对象实例关联,可以直接通过类名调用。
- `si`是静态成员变量,也是类级别的,不依赖于对象实例。
这些面试题考察了C++的内存管理、指针操作、程序间通信以及面向对象特性等多个方面,对于准备C++面试的开发者来说,理解和掌握这些知识点至关重要。
521 浏览量
2140 浏览量
314 浏览量
193 浏览量
2009-07-20 上传
507 浏览量
174 浏览量
122 浏览量
眼看前方_脚踏实地
- 粉丝: 20
- 资源: 23
最新资源
- 马可波罗左侧商品列表导航菜单
- firebat-console:幻影加载工具的控制台助手
- 迈普文化
- x9chroot:创建和/或进入一个简单的chroot环境进行测试
- etch-a-sketch:Web 浏览器蚀刻草图
- Sprucemarks-crx插件
- Synergy_1_10_2 Pro安装包.zip
- bigdata_10_redis:Jedis相关API的练习
- Chess2:David Sirlin的Chess 2的python实现
- 博客前
- 高效团队建设讲义PPT
- prometheus-2.17.2.linux-amd64.tar.gz
- filesharing-app
- 爱淘宝导航分类、菜单栏目可伸缩展开
- torch_sparse-0.6.5-cp37-cp37m-win_amd64whl.zip
- 多斯