目录:

  1、引用相关

  2、const关键字

  3、动态内存分配

1、引用相关:

/*
概念:某个变量的引用等价于这个变量的别名
格式:类型名 & 引用名 = 某变量名 作用:
1、 函数形参引用
2、引用作为函数返回值 注意事项:
1、定义引用时,一定要对其初始化
2、初始化后,不能再引用别地变量
3、引用只能引用变量
4、不能通过常引用去修改其引用的内容 常引用和非常引用的转换:
const T和T &是不同的类型!!!
*/
//作用:
//1、 函数形参引用
void swap(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
//2、引用作为函数返回值
int &setvalue(){return n;}
int main() {
setvalue()=40;//输出n结果为40
cout<<n;
return 0;
//即对函数的赋值,等价于对返回值n赋值
}

2、const关键字

/*
用法:
1、定义常量
2、定义常量指针
(a)不可通过常量指针修改其指向的内容
(b)不能把常量指针赋值给非常量指针,反过来可以
(c)函数参数为常量指针是,可避免函数内部不小心改变参数指针所指地方的内容
3、定义常引用
(a)不能通过常引用修改其引用变量
*/ //2、定义常量指针:
//(a)不可通过常量指针修改其指向的内容
int n,m;
const int *p=&n;
*p=5;//编译出错
4=5;//ok
p=&m;//ok,常量指针指向的地址可以改变 //(b)不能把常量指针赋值给非常量指针,反过来可以
const int *p1;
int *p2;
p1=p2;//ok
p2=p1//error
p2=(int *)p1;//ok,强制转换后可以 //(c)函数参数为常量指针是,可避免函数内部不小心改变参数指针所指地方的内容
void MyPrintf(const char*p){
strcpy(p,"this");//编译出错
printf("%s",p);//ok
} //3、定义常引用
//(a)不能通过常引用修改其引用变量
int n;
const int &r=n;
r=5;//error
n=4;//ok

3、动态内存分配

/*
news用法:
1、分配一个变量
p=new T;
2、分配一个数组
p=new T[N];
配套操作:delete
*/ #include<iostream>
using namespace std;
int main(){
//new用法:
//1、分配一个变量
int *pn;
pn=new int;
*pn=5;
delete p;//释放内容
//2、分配一个数组
int *pn;
int i=5;
pn=new int[i*20];
delete[]p;//delete [] 指针
return 0;
}

随机推荐

  1. 比较接口(Comparable ,Comparator)及流的聚合操作

    Comparable 及 Comparator 的区别 Comparable 一个内比较器,类可以和自己比较 compareTo() 自然比较方法 public interface Comparabl ...

  2. 我的linux学习日记day5

    一.vim 编辑器 有三种模式,命令模式,输入模式,末行模式 1.下面是命令模式常用的命令 2.末行模式常用命令 :w 保存 :q 退出 :q! 强制退出 :wq! 强制保存退出 :set nu 显示 ...

  3. 搞懂js中小数运算精度问题原因及解决办法

    js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言中的double类型(双精度浮点型),不区分浮点型和整数型. number类 ...

  4. 走向统一的 .NET 旅程

    这是微软第一次完全线上举办的Build大会,也是第一次完全属于开发者的大会.几乎所有的新产品都是属于开发者,开发者成为了唯一的主角. 现在的微软比以往任何时候都贴近开发者,重视开发者的作用,为他们打造 ...

  5. IDEA将Maven项目中指定文件夹下的xml等文件编译进classes

    eclipse下面创建的Maven项目,使用mybatis.eclipse里面能正常启动,在idea中一直卡在maybatis 加载位置. 1.首先是不报错也没反应.这个时候需要我们重写SqlSess ...

  6. Codeforces1176B(B题)Merge it!

    B. Merge it! You are given an array aanna1,a2,…,ana1,a2,…,an In one operation you can choose two ele ...

  7. DRF版本组件

    1.DRF版本组件配置类局部使用 局部配置: 方式一:直接配置versioning_class=QueryParameterVersioning 方式二:直接配置versioning_class=UR ...

  8. Netty 中的消息解析和编解码器

    本篇内容主要梳理一下 Netty 中编解码器的逻辑和编解码器在 Netty 整个链路中的位置. 前面我们在分析 ChannelPipeline 的时候说到入站和出站事件的处理都在 pipeline 中 ...

  9. Floyd's Triangle

    Floyd's Triangle Floyd's triangle is a right-angled triangular array of natural numbers. Floyd's tri ...

  10. js生成一个上限跟下限的随机数

    function sj() { //x上限,y下限 var x = 2000; var y = 1800; var rand = parseInt(Math.random() * (x - y + 1 ...