基础知识点 | 0927_前后缀表达式、类的大小等基础题

前后缀表达式


  1. a++表示先使用 a 的当前值,再将 a 的值加 1;

    ++a表示先将 a 的值加 1,再使用 a 的值


  1. 对于内置类型,采用前后缀格式的差别不大;

    但是对于用户自定义的数据类型而言,前缀格式++a的效率更高。


  1. 将 * 与 ++ 作用于指针时,存在问题:将什么解引用,将什么递增

    这取决于运算符的位置与优先级

    前缀递增++a、前缀递减--a和解除引用运算符的优先级相同,以从右到左的方式进行结合。

    后缀递增a++、后缀递减a--的优先级相同,但比前缀运算符的优先级高,这两个运算符以从左到右的方式结合。

    即:


  1. 一个特别的例子

    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位系统)。



虚函数与纯虚函数

https://www.runoob.com/w3cnote/cpp-virtual-functions.html

posted @   不是勇士  阅读(68)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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)
点击右上角即可分享
微信分享提示