c 到 c++
目录:
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;
}
随机推荐
- SSH三大框架知识点
Hibernate ****************************************************************************************** ...
- 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 表,看看都 ...
- Java并发编程3-抽象同步队列AQS详解
AQS是AtractQueuedSynchronizer(队列同步器)的简写,是用来构建锁或其他同步组件的基础框架.主要通过一个int类型的state来表示同步状态,内部有一个FIFO的同步队列来实现 ...
- 存储系列之 LUN 和 LVM
一.LUN 1.LUN的由来 上一篇文章已经介绍了RAID技术的原理,那么RAID的实现呢?有两种方式,RAID软件和RAID硬件.但是因软件RAID占用主机CPU和主机内存,而且RAID功能不易实现 ...
- SpringCloud异常处理统一封装我来做-使用篇
SpringCloud异常处理统一封装我来做-使用篇 简介 重复功能我来写.在 SpringBoot 项目里都有全局异常处理以及返回包装等,返回前端是带上succ.code.msg.data等字段.单 ...
- 树形DP 2415HDU
Bribing FIPA Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 【Java】手把手理解CAS实现原理
先来看看概念,[CAS] 全称“CompareAndSwap”,中文翻译即“比较并替换”. 定义:CAS操作包含三个操作数 —— 内存位置(V),期望值(A),和新值(B). 如果内存位置的值与期望值 ...
- 带你学够浪:Go语言基础系列 - 8分钟学基础语法
对于一般的语言使用者来说 ,20% 的语言特性就能够满足 80% 的使用需求,剩下在使用中掌握. 基于这一理论,Go 基础系列的文章不会刻意追求面面俱到,但该有知识点都会覆盖,目的是带你快跑赶上 Go ...
- Jmeter基础-HTTP请求
启动Jmeter 打开jmeter/bin文件/jmeter.bat(Windows执行文件)文件,就可以启动jmeter了 1.创建测试计划 启动后默认有一个TestPlan(测试计划),可修改其名 ...
- sobel( ) 算子
只是简单的使用方面的记录 sobel()算子是图像处理中用于边缘检测的 opencv-python 中的函数形式为 def Sobel(src, ddepth, dx, dy, dst=None, k ...