目录:

  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. SSH三大框架知识点

    Hibernate ****************************************************************************************** ...

  2. zz 通过INFORMATION_SCHEMA.INNODB_TRX、INNODB_LOCKS、INNODB_LOCK_WAITS 三个表获取事务与锁的信息

    zz from http://imysql.com/2015/03/25/mysql-faq-how-to-fetch-latest-trxid.shtml #先查询 INNODB_TRX 表,看看都 ...

  3. Java并发编程3-抽象同步队列AQS详解

    AQS是AtractQueuedSynchronizer(队列同步器)的简写,是用来构建锁或其他同步组件的基础框架.主要通过一个int类型的state来表示同步状态,内部有一个FIFO的同步队列来实现 ...

  4. 存储系列之 LUN 和 LVM

    一.LUN 1.LUN的由来 上一篇文章已经介绍了RAID技术的原理,那么RAID的实现呢?有两种方式,RAID软件和RAID硬件.但是因软件RAID占用主机CPU和主机内存,而且RAID功能不易实现 ...

  5. SpringCloud异常处理统一封装我来做-使用篇

    SpringCloud异常处理统一封装我来做-使用篇 简介 重复功能我来写.在 SpringBoot 项目里都有全局异常处理以及返回包装等,返回前端是带上succ.code.msg.data等字段.单 ...

  6. 树形DP 2415HDU

    Bribing FIPA Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  7. 【Java】手把手理解CAS实现原理

    先来看看概念,[CAS] 全称“CompareAndSwap”,中文翻译即“比较并替换”. 定义:CAS操作包含三个操作数 —— 内存位置(V),期望值(A),和新值(B). 如果内存位置的值与期望值 ...

  8. 带你学够浪:Go语言基础系列 - 8分钟学基础语法

    对于一般的语言使用者来说 ,20% 的语言特性就能够满足 80% 的使用需求,剩下在使用中掌握. 基于这一理论,Go 基础系列的文章不会刻意追求面面俱到,但该有知识点都会覆盖,目的是带你快跑赶上 Go ...

  9. Jmeter基础-HTTP请求

    启动Jmeter 打开jmeter/bin文件/jmeter.bat(Windows执行文件)文件,就可以启动jmeter了 1.创建测试计划 启动后默认有一个TestPlan(测试计划),可修改其名 ...

  10. sobel( ) 算子

    只是简单的使用方面的记录 sobel()算子是图像处理中用于边缘检测的 opencv-python 中的函数形式为 def Sobel(src, ddepth, dx, dy, dst=None, k ...