基础知识点 | 0927_前后缀表达式、类的大小等基础题
前后缀表达式
-
a++
表示先使用 a 的当前值,再将 a 的值加 1;++a
表示先将 a 的值加 1,再使用 a 的值
-
对于内置类型,采用前后缀格式的差别不大;
但是对于用户自定义的数据类型而言,前缀格式
++a
的效率更高。
-
将 * 与 ++ 作用于指针时,存在问题:将什么解引用,将什么递增
这取决于运算符的位置与优先级
前缀递增
++a
、前缀递减--a
和解除引用运算符的优先级相同,以从右到左的方式进行结合。后缀递增
a++
、后缀递减a--
的优先级相同,但比前缀运算符的优先级高,这两个运算符以从左到右的方式结合。即:
-
一个特别的例子
int arr[5] = {1, 2, 3, 4, 5}; int *p = arr; int x = *p++; // 后缀运算符优先级高于解引用,因此先执行 p++,p 指向 arr[1] // 在解引用时,由于后缀运算符的特性,所以执行 *p,且此处的 p 指向 arr[0], 所以得到 1 // 所以最后 x = 1,且 p 指向 arr[1]
取余
- 取余操作的左右两边都必须是整数
类创建对象
题目:
解答:
第一句创建一个,第二局创建6个,第三句不创建,第四句拷贝构造创建一个,第五句创建一个,合计9个。
类的大小
题目:
解答:
这里A选项描述不够准确,个人觉得不选它是存在争议的,“成员个数”,成员应该包括:静态数据成员,非静态数据成员,静态成员函数,非静态成员函数。成员函数(包括静态和非静态)和静态数据成员都是不占存储空间的。
对象大小 = 虚函数指针 + 所有非静态数据成员大小 + 因对齐而多占的字节
不论有多少个虚函数,都有一个指向虚函数表的指针,占用4字节(32位系统)。
虚函数与纯虚函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)