慕课学习C++笔记01-离港篇+起航篇


问:什么是引用?

答:引用就是一个变量的别名(相对于真名),引用必须初始化,可以理解为一个变量不能只有别名,总是一个真名变量的别名,因此初始化就是告诉我们这个别名b的真名是a。

引用用于函数参数,比指针的使用更简洁。

    int a = 10;
    int &b = a;//引用必须初始化

问:指针类型的引用?

答: 类型 *&指针引用名 = 指针;//也就是给指针其了一个别名,这个别名也是指针。


问:const?

答:const是来控制这个变量是不可以改变的。int const *p=&a; const int *p=&a是完全等价的,表示的是p指向的内容(即*p)不可改变;int *const p = &a;表明的是p本身不能改变;

int const *const p = &a;表明的是p和p指向的内容不可改变。

若是变量a本身是const,那么它的指针要体现出*p不可改变,也就是当const int a;  那么指针需写成int const*p = &a;


问:C++的新特性?

答:函数参数默认值,有默认值的参数必须在参数列表的最右端,无实参传入用默认值,否则用实参覆盖默认值;

函数重载,是指在相同作用域内,用同一个函数名的定义的多个函数,参数可变(参数个数和参数类型不同);

内联函数,编译时将函数体代码和实参代替函数调用语句,与普通函数相比,节省了调用函数(2)和返回(4)步骤,提高执行效率,使用上加关键字inline,其他与普通函数没有区别。那么为什么不都用内联函数?因为内联编译是建议性的,由编译器决定;逻辑简单,频繁调用的函数建议使用内联函数;递归函数无法使用内联方式。



问:内存?

答:

申请和释放一个内存:

申请内存,运算符new,int *p = new int;

归还(释放),运算符delete,delete p; p = NULL。

申请和释放一块内存:

int *arr = new int[10];  //申请块内存

delete []arr;   arr = NULL;           //释放块内存

那么申请内存一定会成功?不一定,所以要判断arr == NULL,若为空指针,说明内存申请失败。注意事项,释放内存时,指针p要赋值NULL,防止误操作调用两次deleter p,就会使得同一内存重复回收,那么计算机就会出现问题。完善的写法如下:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值