C++初阶Day2

引用

指针:
其空间存放变量她址
二级指针:

int**p;//指针p存放int*类型变量的地址
a=b;//赋值,b空间的值放到a空间,a、b分别有各自空间

引用

&b=a;//b是a空间的别名,a、b同一个空间
  1. 必须初始化
  2. 要同类型的引用,类型要匹配

指针的引用

int* pa;
int* &pr = pa;

数组的引用

int ar[] = {...};
int (&br)[] = ar;

常引用

int a = 10;//a的值是可修改的
const int &b = a;//不能用b来修改a的值,但用a自己是可以修改的
const int a = 10;
int &b = a;//这是错误用法。a是常量是不可修改的,b是非常是可以修改的。只能用用别名修改,本名不能修改不符合现实习惯的。
double d = 3.14;
int &rd = d;//错误用法。类型不匹配
double d = 3.14;
const int &rd = d;//rd是中间临时变量的引用而非d的引用,临时变量是const的

在这里插入图片描述

临时变量

  1. 具有常性
  2. 函数返回产生临时变量,局部变量做返回值赋给临时变量后随函数栈消失,临时变量赋完值后消失。

传值、传引用

引用返回:
不要引用局部变量,局部变量调用结束消失,局部变量返回用传值。引用传值在传值和返回上效率较高。

内联

关键字:inline

inline 函数返回值类型 函数名{...}
  1. 内联函数可不进行调用(不进行压栈处理),函数的汇编语句在调用函数的汇编语句中展开,增加了调用函数内容,但减少了压栈时间。
    ②一种建设,若内联函数内部有循环,不做展开处理
    ③声名定义不能分开
    ④总结:
    简单的函数建议内联,复杂函数(有递归归、循环)不内联
    宏定义:复用性、不便调试
    常量const、内联可替代宏

auto关键字

auto

C++11标准

  1. 推到变量类型
  2. 不推到参数的类型
auto a = x;//a有自己的空间
auto &a = x;//a是x的引用
auto a = &x;
auto *a = &x;
  1. 不能用来声名数组
  2. 遍历数组:
for(int i = 0;i < n;i++)
for(const auto &e:ar)
for(int e:ar)
list<int>::iterator it = mylist.begin();
auto it = mylist.begin();

计时:

#include <time.h>//引入头文件

size_t begin = clock();//获取开始时间
//任务...
size_t end = clock();//获取结束时间
size_t t = begin - end;//任务用时t
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值