C++的一些黑暗料理
本文中的“黑暗料理”仅限本人在学习C++的过程中感觉易忘、有趣、不为大多数人所知的一些特性。
1. C++中int型数据在VC++环境下最小值为什么是 -32678,而不是-32677,其中涉及到原码、补码、反码的一些知识。
2. C++中的运算符的优先级及结合性。
3. C++中强制类型转换的方法:1)double (a),2)(int) x,3)(float)(5%3)。
4. C++中的逗号运算符和逗号表达式,优先级最低,表达式2的值是整个表达式的值。
5. 在标准输入输出流中使用操作符,需要包含 iomanip 头文件。
6. 带有默认参数的函数,默认参数总是放在函数形参列表的最后。
7. 函数重载与函数模板。其中重载函数仅要求函数名相同,参数类型/数目/顺序有一项不同即可,返回值可同可不同。
8. 函数的形参与实参,函数的形参在定义函数的时候是不占用存储单元的,只有在函数调用时,才会从动态存储区为形参分配内存,然后函数调用结束后
马上释放存储单元。函数的实参和形参所用的当然不是同一块存储单元。
9. 数组在定义或者作为函数形参的时候可以省略第一维的值,但是不可以省略第二维或者更高维的值。
10. 包括一维、二维、多维、字符数组在内的各种各样的赋初值初始化的方法。
11. 关于字符串结束标志 ‘ \0 ’。它是自动在字符串后面添加的,前面的字符数为字符串的实际长度。但没有提供足够的初值的时候,字符数组会默认数组
成员是‘ \0 ’,就像数组默认为 0 一样。用字符串为字符数组赋初值的时候,小心因为‘ \0 ’的原因而出错(数组长度不够)。字符数组最后完全可以不是‘ \0 ’。
12. 处理字符串的问题上,C语言:字符串常量;字符数组;字符串处理函数。
C++:string类。
13. 在VC++环境下,一个char型数据占一个字节,一个int型数据占两个字节,一个float型的数据占4个字节,一个double型数据占8个字节。
14. 在VC++环境下,会为每一个指针变量(不论其指向的类型是什么)分配 4 个字节的存储空间。
15. C++中的传值与传址: 经典的swap函数,错误的写法中只是形参的值交换,实参的值并没有变化,正确的用指针的写法中,形参为指针变量,直接修改
了对应存储单元的值。这两种方式都属于传值方式。
而正确的使用引用的写法中,是C++中的传址方式。
16. 共用体和枚举。
17. int* p[4] 与 int (*p)[4]以及 int p[x][4]的区别,详见 http://blog.csdn.net/ajioy/article/details/6951643
18. C++中的控制结构包括顺序结构、选择结构、循环结构。
19. 不包括循环等控制结构且在类体内定义的成员函数,C++默认为内置 incline 函数。(谭书原话,理解其意就好)。
20. 成员函数的存储方式:一个对象所占的空间大小只取决于该对象中数据成员所占的空间,而与成员函数无关。成员函数代码是存储在对象空间之外的。
不同的对象使用的是同一个函数代码段,它怎么能够分别对不同对象中的数据进行操作呢?--->this 指针。
21. this 指针。
22. 指向对象成员函数的指针的定义和使用。
23. 一个类的默认构造函数(无参调用)只能有一个。
24. 对象初始化时可以采用构造函数,成员初始化列表,成员函数(set 函数)等。
25. 构造函数只能利用参数初始化列表对常数据成员进行初始化。静态数据成员只能在类体外进行初始化。
26. 解决多重继承的二义性的方法是加上作用域限定符。
27. 虚基类与虚继承的目的。
28. 赋值兼容:可以把子类对象赋给基类对象。
29. 同名覆盖。
ps:不定期更新。
C++的一些黑暗料理的更多相关文章
- 生活中的MVC模式,一个吃货的理解。
以下是生活中对于MVC模式的领悟,虽然可笑,轻喷. 2015年 8月 26日 M => Model 模型 我认为叫做模具更好的理解.批量加工生产具有相同特征的东西. ...
- <后会无期>经典影评
先说明是转载,任何不同意见请对原作者表达,楼主不作任何回应,楼主影商极低,楼主觉得这二十几年来看的最好的电影是<一代宗师>,楼主只是觉得这篇影评精彩才发布上来让更多的人看到.原作者意见和楼 ...
- leetcode-Single NumberII
https://leetcode.com/problems/single-number-ii/ 很无耻的又一次使用了黑暗料理... class Solution: # @param {integer[ ...
- 洛谷P4602 [CTSC2018]混合果汁(主席树)
题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 nn 种果汁,编号为 0,1,\cdots,n-10,1,⋯,n−1 . ii 号果汁的美味度是 d_idi ,每升价格为 p_ipi ...
- BZOJ5343 & 洛谷4602 & LOJ2555:[CTSC2018]混合果汁——题解
https://www.luogu.org/problemnew/show/P4602 https://loj.ac/problem/2555 https://www.lydsy.com/JudgeO ...
- [Bzoj]5343: [Ctsc2018]混合果汁
5343: [Ctsc2018]混合果汁 题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 \(n\) 种果汁,编号为 \(0,1,\cdots,n-1\) .\(i\) 号果汁的美味度 ...
- 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)
牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...
- [洛谷P4602] CTSC2018 混合果汁
问题描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 n 种果汁,编号为 0, 1, 2, . . . , n − 1.i 号果汁的美味度是 di,每升价格为 pi.小 R 在制作混合果汁时 ...
- 万字分享,我是如何一步一步监控公司MySQL的?
整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 ...
随机推荐
- php register_shutdown_function响应error 配合error_get_last 捕获错误
转自: http://blog.csdn.net/a757291228/article/details/62231125 //一个函数,用来响应 register_shutdown_function ...
- Sqlserver实现故障转移 — AlwaysOn实现故障转移(4)
目的:在已经加域的计算机上安装sqlserver2012,并配置系统级故障转移及数据库,实现AlwayOn. 域控的建立详见:https://www.cnblogs.com/xiaoerlang90/ ...
- Beego框架的一条神秘日志引发的思考
公司目前的后台是用Beego框架搭的,并且为了服务的不中断升级,我们开启了Beego的Grace模块,用于热升级支持.一切都跑井然有序,直到有一天,领导甩出一些服务日志,告知程序一直报错: 2018/ ...
- 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...
- Ubuntu 16.04安装anaconda3
首先下载anaconda3镜像,清华大学开源软件镜像站下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 因为实验需要用到tenso ...
- CentOS 7 分区
必须的分区 boot分区: 作用:引导分区,包含了系统启动的必要内核文件,即使根分区顺坏也能正常引导启动 一般这些文件所占空间在200M以下, 分区建议:分区的时候可选100M-500M之间,如果空间 ...
- /etc/shadow字段信息
root:$1$yOVPpScN$MlmYppDEYfwMMuDnthdIj.:18100:0:99999:7::: 与/etc/passwd文件中的登陆名称字段对应的登录名 加密后的密码 自上次修改 ...
- 【AMAD】python-magic -- libmagic的python封装
简介 动机 作用 用法 个人评分 简介 libmagic的python封装 动机 封装libmagic,使用python代码获取文件类型. 作用 libmagic通过文件头部,来确定文件的类型. 用法 ...
- 【Python开发】matplotlib绘图不显示问题解决plt.show()
最近在看<Python数据分析>这本书,而自己写代码一直用的是Pycharm,在练习的时候就碰到了plot()绘图不能显示出来的问题.网上翻了一下找到知乎上一篇回答,试了一下好像不行,而且 ...
- ubuntu服务器上用Nginx和Uwsgi部署django项目
开发环境:ubuntu系统,python3环境 django项目目录: fast_foot 为项目根目录,app为项目应用 现在,我们登陆远程服务器 安装Nginx 安装好了,我们看一下nginx的配 ...