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

  1. 你怎么理解C语言和C++的区别?⭐⭐⭐⭐⭐

  2. 简述下C++语言的特点⭐⭐⭐⭐

  3. 简述C++从代码到可执行二进制文件的过程⭐⭐⭐⭐⭐

  4. 说说include头文件的顺序以及双引号""和尖括号<>的区别⭐⭐⭐

  5. 知道动态链接与静态链接吗?两者有什么区别⭐⭐⭐⭐

  6. 导入C函数的关键字是什么,C++编译时和C有什么不同?⭐⭐⭐⭐

  7. 请你说说什么是宏?⭐⭐⭐⭐⭐

  8. 为什么要少使用宏?C++有什么解决方案?⭐⭐⭐⭐⭐

  9. 请你说说内联函数,为什么使用内联函数?需要注意什么?⭐⭐⭐⭐⭐

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

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

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

  1. 你怎么理解C语言和C++的区别?⭐⭐⭐⭐⭐

    1. C语言是C++的子集,C++可以很好兼容C语言。但是C++又有很多新特性,如引用、智能指针、auto变量等。
    2. C++是面向对象的编程语言,C++引入了新的数据类型——,由此引申出了三大特性(1)封装。(2)继承。(3)多态。而C语言则是面向过程的编程语言。
    3. C语言有一些不安全的语言特性,如指针使用的潜在危险、强制转换的不确定性、内存泄露等。而C++对此增加了不少新特性来改善安全性,如const常量、引用、cast转换、智能指针、try—catch等等;
    4. C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL(Standard Template Library)。STL的一个重要特点是数据结构和算法的分离,其体现了泛型化程序设计的思想。C++的STL库相对于C语言的函数库更灵活、更通用
  2. 简述下C++语言的特点⭐⭐⭐⭐

    1. C++在C语言基础上引入了面向对象的机制,同时也兼容C语言
    2. C++有三大特性(1)封装。(2)继承。(3)多态;
    3. C++语言编写出的程序结构清晰、易于扩充,程序可读性好
    4. C++生成的代码质量高,运行效率高,仅比汇编语言慢10%~20%;
    5. C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try—catch等等;
    6. C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL(Standard Template Library)。
    7. 同时,C++是不断在发展的语言。C++后续版本更是发展了不少新特性,如C++11中引入了nullptr、auto变量、Lambda匿名函数、右值引用、智能指针。
  3. 简述C++从代码到可执行二进制文件的过程⭐⭐⭐⭐⭐

    C++和C语言类似,一个C++程序从源码到执行文件,有四

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

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

全部评论
多多点赞,会变好看,多多留言,会变有钱
3 回复 分享
发布于 2021-03-10 09:24
补充下,动态链接与静态链接:静态链接--将各个模块的obj和库链接成一个完整的可执行程序。优点:运行快、可独立运行。缺点:浪费空间--存在多个副本,因为同一个函数的多次调用会被多次链接进可执行程序、当库、模块修改时,main也需要重编译。动态链接--程序在运行的时候寻找动态库的函数符号(重定位),可以理解成main函数中遇到一个不认识的符号(函数名),就去链接对应的动态库,后序遇到同一个函数,就用之前的。优点:节省空间--相同的函数只有一份、当库、模块修改时,main不需要重编译。缺点:运行较慢(事实上,动态库被广泛使用,这个缺点可以忽略)、不可独立运行。
3 回复 分享
发布于 2021-04-19 17:51
补充下,双引号""和尖括号<>的区别:<>查找路径:/usr/include/部分目录、/usr/lib/gcc/x86_64/linux_gnu/7/inlcude、/usr/local/include、/usr/include。使用echo | g++ -v -x c++ -E -可以观察具体细节 双引号"":当前路径、编译器指定-I、全局变量值CPLUS_INCLUDE_PATH/C_INCLUDE_PATH(最开始是空的)、<>路径
1 回复 分享
发布于 2021-04-19 11:45

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
12-05 15:53
中南大学 Java
点赞 评论 收藏
分享
评论
12
3
分享
牛客网
牛客企业服务