C++拾遗

作者: 清明小雨 | 来源:发表于2015-10-24 20:54 被阅读0次

1. 函数调用,参数列表从右往左入栈。而语句从左到右执行

#include <string.h>

int p1(){
    printf("1");
    return 1;
}
int p2(){
    printf("2");
    return 2;
}

int p3(){
    printf("3");
    return 3;
}
int sum(int a,int b,int c){
    return a+b+c;
}

int main(){
    int var = 1;
    printf("%d ",sum(p1(),p2(),p3()));
    printf("%d\n",p1()+p2()+p3());
    return 0;
}

执行结果:3216 1236

2. 大端/小端字节序

  • 大端(Most significant bit)字节序符合人的习惯,高位字节放在变量起始地址,也作为网络通信中的字节序如 unsigned int var = 0x12345678,

    地址 0x05 0x06 0x07 0x08
    var 0x12 0x34 0x56 0x78

  • 小端(Least significant bit)字节序则更为直观,低位字节放在变量起始地址,上述的var变量的内存分布为

    地址 0x05 0x06 0x07 0x08
    var 0x78 0x56 0x34 0x12

3. restrict关键字

修饰指针,用于告知编译器,所有对于指针所指的变量的修改都是通过该指针进行的
注意,这个关键字只用于告知编译器这个假设,编译器并不会对这个假设进行检验,也就是说如果你将这个指针复制了几遍,也不会报错,可以使用C99中的memcpy函数进行检验

4. 类型转化cast

1. const_cast
2. static_cast
3. dynamic_cast
4. reinpreter_cast

5. strcmp与空字符串比较会崩溃,如果某字符串A是另一字符串B的前缀,则A<B

6. extern "C"

7. 动态链接库与静态链接库

8. 常量字符串与变量字符串

    char *c = "hello world";//常量字符串,即使在函数内部定义也存放在全局的常量区
    c[0] = 'a';//错误,常量不可修改

    char c[] = "hello world";//局部变量,在函数内部定义存在在栈中
    c[0] = 'a';

9. 取数组名的地址结果是二维数组

int pt[]={0,1,2,3,4,5};
int *pt2 = (int *)(&pt + 1);
printf("%d",*(pt2-1));

10. 浅拷贝,默认拷贝函数对于指针成员变量进行的是浅拷贝,容易造成对同一块内存的多次析构

11. 必须用初始化列表进行构造的成员变量有

1.const成员
2.引用成员
3.基类构造函数

12. 虚析构函数

13. 类成员初始化顺序

c++ 中类变量的初始化顺序,大体如下:
基类的静态成员初始化;
派生类的静态成员初始化;
基类的对象成员初始化;
基类的构造函数;
派生类的对象成员初始化;
派生类的构造函数;

14. inline放在定义之前

15. 运算符重载的两种方式:成员函数和友元,不改变优先级,结合性,参数个数

16. 虚函数表的内存布局

17. 程序的内存布局

18. int的边界值,unsigned边界值,补码

19. 宏定义与inline的区别

20. 虚构造/析构函数

21. 线程安全的函数如何设计

22. 补码表示

模表示可以表示的数的范围,如int的模式2^31
负数的补码表示 = 模 - 绝对值

to be contiunued...

相关文章

  • 剑指offer学习笔记:8.6 回溯法

    c++【拾遗】 回溯算法参考链接 https://leetcode-cn.com/problems/n-queen...

  • C++拾遗

    1. 函数调用,参数列表从右往左入栈。而语句从左到右执行 执行结果:3216 1236 2. 大端/小端字节序 大...

  • C++拾遗

    可变参数模板函数 省略号的作用 声明一个参数包,可包含0到任意个模板参数 在模板定义的右边,可将参数包展开成各个独...

  • 拾遗神兽目录

    拾遗神兽(番外篇)黑猫 拾遗神兽(1)水晶心的梦 拾遗神兽(2)新宠 拾遗神兽(3)初次交锋猫大爷 拾遗神兽(4)...

  • 【C++拾遗】详解C++中的函数指针

    这是C++类一些重点难点知识笔记的第 三 篇,同专题的其他文章可以移步:https://www.jianshu.c...

  • 【C++拾遗】详解C++中的引用变量

    这是C++类一些重点难点知识笔记的第 四 篇,同专题的其他文章可以移步:https://www.jianshu.c...

  • 更新&摄影投稿说明

    编辑『拾遗』 图『拾遗』 排版『拾遗』 『我们不只是用相机拍照。我们带到摄影中去的是所有我们读过的书,看过的电影,...

  • 【C++拾遗】详解C++中的迭代器iterator

    这是C++类一些重点难点知识笔记的第 二 篇,同专题的其他文章可以移步:https://www.jianshu.c...

  • 【C++拾遗】详解C++中的函数模板

    这是C++类一些重点难点知识笔记的第 五 篇,同专题的其他文章可以移步:https://www.jianshu.c...

  • 【C++拾遗】详解C++中的指针和const

    这是C++类一些重点难点知识笔记的第 一 篇,同专题的其他文章可以移步:https://www.jianshu.c...

网友评论

      本文标题:C++拾遗

      本文链接:https://www.haomeiwen.com/subject/enathttx.html