蒋豆芽的面试题专栏(6/C++基础)

  1. 说说静态变量什么时候初始化?⭐⭐⭐

  2. 说说 static关键字的作用⭐⭐⭐⭐⭐

  3. 为什么静态成员函数不能访问非静态成员⭐⭐⭐⭐⭐

  4. 静态成员函数与普通成员函数的区别⭐⭐⭐⭐⭐

  5. 说说volatile和mutable⭐⭐⭐⭐⭐

  6. 说说volatile的应用⭐⭐⭐⭐⭐

  7. 说说原子操作⭐⭐⭐⭐

  8. 说说引用和指针的区别⭐⭐⭐⭐⭐

  9. 说说左值和右值⭐⭐⭐

  10. 说说右值引用的作用⭐⭐⭐⭐⭐

  11. 说说移动语义的原理⭐⭐⭐⭐⭐

  12. 多线程编程修改全局变量需要注意什么⭐⭐⭐⭐⭐

=========================================================================================================

  • 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。
  • 本专栏适合于互联网C++软件开发、嵌入式软件求职的学生或人士。
  • 本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。这才是一份面试题总结的正确打开方式。这样才方便背诵
  • 针对于非科班同学,建议学习本人专刊文章《蒋豆芽的秋招打怪之旅》,该专刊文章对每一个知识点进行了详细解析。
  • 如专栏内容有错漏,欢迎在评论区指出或私聊我更改,一起学习,共同进步。
  • 相信大家都有着高尚的灵魂,请尊重我的知识产权,未经允许严禁各类机构和个人转载、传阅本专栏的内容。

=========================================================================================================

  1. 说说静态变量什么时候初始化?⭐⭐⭐

    对于C语言的全局和静态变量,初始化发生在任何代码执行之前,属于编译期初始化。

    而C++标准规定:全局或静态对象当且仅当对象首次用到时才进行构造。

  2. 说说 static关键字的作用⭐⭐⭐⭐⭐

    1. 定义静态函数或全局变量:当我们同时编译多个文件时,在函数返回类型或全局变量前加上static关键字,函数或全局变量即被定义为静态函数或静态全局变量。静态函数或静态全局变量只能在本源文件中使用。这就是static的隐藏属性

    2. static 的第二个作用是保持变量内容的持久:在变量前面加上static关键字。初始化的静态变量会在数据段分配内存,未初始化的静态变量会在BSS段分配内存。直到程序结束,静态变量始终会维持前值。只不过全局静态变量和局部静态变量的作用域不一样。

    3. static 的第三个作用是默认初始化为 0:全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是 0x00

      最后对 static 的三条基本作用做一句话总结。首先 static 的最主要功能是隐藏,其次因为 static 变量存放在静态存储区,所以它具备持久性和默认值0。

    4. 在c++中,:使用静态数据成员,它既可以被当成全局变量那样去存储,但又被隐藏在类的内部。类中的static静态数据成员拥有一块单独的存储区,而不管创建了多少个该类的对象。所有这些对象

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

- 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,总结出了高频面试考点(附有答案)共计309道,事半功倍,为大家春秋招助力。 - 本专栏内容分为七章:共计309道高频面试题(附有答案)

全部评论
volatile我理解的是:防止编译器优化,每次都必须从内存中读取。由于寄存器访问速度远快于内存,每次会用寄存器暂存这些变量的值,编译器就从寄存器读取而不是内存
1 回复 分享
发布于 2021-04-21 09:55
左值和右值:(1)左值:可以长期存在的变量(2)右值:临时变量,使用后马上回收。一个简单的案例int i = 10; int j = 2*i;其中2*i就是一个典型的右值,使用完后马上释放。(3)核心的几条准则,(i)只能将右值绑定到右值引用或者const左值引用(ii)所以的变量都是左值(iii)通过std::move可以把左值变成右值(原来的就不可再使用,指针置空)
2 回复 分享
发布于 2021-04-21 10:36
多多点赞,会变好看,多多留言,会变有钱! 欢迎大家一起来讨论
点赞 回复 分享
发布于 2021-03-10 11:18
大家可以关注我,以后会有更多原创内容推送
点赞 回复 分享
发布于 2021-03-11 20:31
完美转发:什么是转发?在调用函数的时候,会把实参传递给函数形参。实参可能是左值属性、右值属性、const属性等等。目标:怎么通过一套机制使得形参的属性完全和原来的实参一致。比如原来属性是左值传递后也是左值,原来属性是右值传递后也是右值,,,。(1)为什么会强迫实参完全保留形参的属性呢?在C++模板编程中,广泛存在模板参数的推导问题,这就当然需要保留一致属性(2)std::forward?C++已经攻破了上述难题,引用进std::forward配合右值可以实现完美转发,可以保留所有属性。 可以阅读下面的文章 https://guodong.plus/2020/0314-132811/
1 回复 分享
发布于 2021-04-21 10:50
(6)如果返回的是动态分配的内存或对象,必须使用指针,使用引用会产生内存泄漏。 这个要怎么理解?为什么动态分配的内存或对象使用引用会产生内存泄漏
点赞 回复 分享
发布于 2022-04-12 16:27

相关推荐

点赞 评论 收藏
分享
评论
6
1
分享
牛客网
牛客企业服务