C++笔记

结构体内存对齐

  1. 什么叫内存对齐:编译器为每个“数据单元”安排在某个合适的位置上。
  2. 为什么要对齐:更快地将数据提取到寄存器中。如果内存对齐,cpu在寻址时,可以一个总线周期提取到数据;如果数据存储不是内存对齐,那么cpu寻址会耗费更多的总线周期,并且还需要合并寄存器的值。这样导致了寻址耗时。

C++作用域标识符::
用于对与局部变量同名的全局变量进行访问
用于表示类的成员

函数的多态性
静态的多态
在编译时确定函数的入口地址(静态联编)
例如:函数重载
动态的多态
在运行时确定函数的入口地址(动态联编)
例如:虚函数

name managling(改编)与extern “C”
name managling :编译器对重载函数进行函数名称改变
extern “C”: 按照C语言的方式编译
#ifdef __cplusplus
#endif

参数默认值
1. 函数没有声明时,在函数定义中指定形参的默认值
2. 函数既有定义又有声明时,声明指定后,定义后就不能再指定默认值
3. 默认值的定义必须遵守从右到左的顺序,如果某个形参没有默认值,则它左边的参数就不能有默认值
4. 函数调用时,实参与形参按从左到右的顺序进行匹配
5. 带默认形参值的函数的二义性

引用:

  1. 引用主要作用参数传递、返回值
  2. 引用的概念:
    引用不是变量
    引用仅仅只是变量的别名
    引用没有自己独立的空间
    引用要与它所引用的变量共享空间
    对引用所做的改变实际上是对它所引用的变量的改变
    引用在定义的时候要进行初始化
    引用一经初始化,不能重新指向其他变量
  3. const引用:指向const对象的引用
    const int ival = 1024;
    const int& refval = ival;
  4. 引用作为返回值
int& add(int a, int b){
    int sum;
    num = a + b;
    return num;
}
int main(){
    int n = add(3, 4);//num 被释放了,但将值赋值给了n
    int& n2 = add(5, 6);//num 被被释放了,n2 是num的别名

    cout << n << endl; // 值为7
    cout << n2 << endl;//值为不确定值
}

引用的另一个作用是用于返回引用的函数
函数返回引用的一个主要目的是可以将函数放在赋值运算符的左边。
注意:不能返回对局部变量的引用
5. 引用与指针的区别:
引用访问一个变量是直接访问,而指针是间接访问。
引用是一个变量的别名,本身不单独分配内存空间,而指针有自己的内存空间。
引用一经初始化不能再引用其他变量,而指针可以。
尽可能使用引用,不得已时使用指针。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值