zoukankan      html  css  js  c++  java
  • 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 一样。用字符串为字符数组赋初值的时候,小心因为‘ ’的原因而出错(数组长度不够)。字符数组最后完全可以不是‘ ’。

    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:不定期更新。

  • 相关阅读:
    [LeetCode] Power of Three 判断3的次方数
    [LeetCode] 322. Coin Change 硬币找零
    [LeetCode] 321. Create Maximum Number 创建最大数
    ITK 3.20.1 VS2010 Configuration 配置
    VTK 5.10.1 VS2010 Configuration 配置
    FLTK 1.3.3 MinGW 4.9.1 Configuration 配置
    FLTK 1.1.10 VS2010 Configuration 配置
    Inheritance, Association, Aggregation, and Composition 类的继承,关联,聚合和组合的区别
    [LeetCode] Bulb Switcher 灯泡开关
    [LeetCode] Maximum Product of Word Lengths 单词长度的最大积
  • 原文地址:https://www.cnblogs.com/niuxichuan/p/5223385.html
Copyright © 2011-2022 走看看