C++题目总结4

博客总结了C与C++的基础知识点,包括双目运算的隐式转换、自定义函数的作用、C和C++的类型、switch语句规则、预编译命令、栈和堆的特点、auto特性、输入输出函数用法、多态分类、内存分配与释放,以及内联函数和#define的区别等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.进行双目运算的两个基本类型变量,如果类型不一样,会进行隐式上升转换,如int转double。

 

2.写自定义函数的目的是,提高代码的可读性,对代码进行复用。不会提升效率,因为调用函数要进行压栈,不调用函数就不用进行压栈,调用函数降低了效率。

 

3.C语言类型包括整型,实型(float单精度实型,double双精度实型),字符型。C++增加了逻辑型(true和false,C中0代表假,非0代表真)。

 

4.在switch中,首先选择符合条件的段,然后一直执行到switch结束或者遇到break语句。 ----C++ primer

 

 

5.带#号的都是预编译命令,sizeof是操作符。

 

 

6.'\0'在内存中实际代表0

 

7.

栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。栈顶的地址和栈的最大容量是系统预先规定好的,在Windows下,栈的通常的大小是2M,如果申请的空间超过栈的剩余空间时,将 提示overflow。所以能从栈获得的空间较小。    

 堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储  的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小  受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。 

但是栈的操作效率比堆的操作效率高,因为操作系统提供了对栈的直接操作指令。

 

8.auto会忽略底层const

 

9.scanf不能限制精度但能限制长度,printf中%f可用为float和double,在scanf中%f和%lf才有区别。printf默认是右对齐,加上-后是左对齐。其他更多的用法见百度。

 

10.C++中的“多态”分为静态多态和动态多态。静态多态表示函数重载,模板函数,动态多态表示虚函数。

 

 

11.malloc失败会返回null,new失败会抛出异常,将指针free或者delete后,一定要置为null。如果不对野指针进行操作,不会出现问题,一旦对野指针进行解引用,就会出现问题。

 

 

12.内敛函数和#define不同,内联函数在编译时是“函数”替换,#define只是简单的字符串替换。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值