1.引用
(1).eg:int n=4; int &r=n; r=5; cout<<n; //n=5;
(2).定义引用时,一定要初始化;初始化为引用某个变量,不再改变;只能引用变量,不能引用常量;
2.常引用
(1).int n=4 ; const int &r=n;//r的类型是const int &;
r=5;//编译错;n=5;//ok 不能通过常引用去修改其引用的内容;
(2). int &r2=n ; const int &r1=r2;//ok
int r2=n ; const int &r1=r2;//ok
const int &r2=n ; int &r1=r2;//error
const int r2=n ; int &r1=r2;//error
3.const的用法
(1).定义常量
eg.const int MAX=0xfffff;
(2).定义常引用
eg.不能通过常引用去修改其引用的内容
int n=4 ;
const int &r=n;//r的类型是const int &;
r=5;//编译错;
(3).定义常量指针
eg.不可通过常量指针修改其指向的内容
int m,n;
const int *r2=&n ;
r2=&m;//ok
n=4;//error
*r2=5;//error
eg.不可把常量指针赋给非常量指针
const int *r1= n,int *r2= m;
r1=r2;//ok
r2=r1;//error
r2=(int*)r1;//ok
eg.函数参数为指针变量时,可避免改变指针变量指向的内容
void myPrint(const char* p){
strcpy(p,"name");//error;
printf("%s",p);//ok
}
4.动态分配内存
(1).int* p=new int; p=4; delete p;
(2).int* p=new int[25]; p[0]=3; delete [ ]p;
5.内联函数
inline max(int a,int b){return a>b?a:b;}
6.函数的缺省参数
最右边的连续若干个参数有缺省值