C++学习总结
Posted helloworldcode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++学习总结相关的知识,希望对你有一定的参考价值。
1、const指针
指向常量的指针变量,其一般形式为 "const 类型名 * 指针变量名 " 。 如下:
int a=12,b=15; const int *p=&a; int *q=&b; *p=22; //非法,试图通过p修改a的值 *q=22; //一般的指针变量可以修改,合法 p=&b; //p改为指向b,合法。
2、引用
对于数据可以建立一个“引用”,它的作用是为变量起另一个别名。
int main() { int a=5; int &b=a; printf("%d ",b); }
以上声明了b是a的引用,即b是a的别名,这样声明后,a和b的作用是相同的,都代表同一变量。可以这样去理解:通过b去引用a。在上面的声明中,"&"是引用声明符,不代表地址。
需要注意几点:
- 引用是一种独立的数据类型。对引用只有声明,没有定义。即必须先定义一个变量,然后对该变量建立一个引用。
- 声明一个引用,必须同时使之初始化,即声明它代表哪一个变量。
- 声明另一个变量后,不能再使之作为另一个变量的引用。
- 不能建立引用数组如:
int main() { int a[5]; int &b[5]=a; //错误,不能建立引用数组 int &b=a[0]; //错误,不能作为数组元素的别名 }
- 不能建立引用的引用。
int main() { int a=3; int &b=a; int &c=b; //建立引用的引用,错误 }
- 可以取引用的地址,如声明b是a的引用,则&b就是变量a的地址。
int main() { int *pt; pt=&b; //把变量a的地址&a赋给指针变量pt }
3、运算符new和delete
C++提供了较简便而功能强大的运算符new和delete来代替malloc和free函数,因此最好不用malloc和free;
int main() { int m=3,n=4,i; int **a = new int*[m]; //分配一个指针数组,将其首地址保存在a中 、 for(i = 0; i < m; i++) //为指针数组的每个元素分配一个数组 a[i] = new int [n]; //动态声明的数组,使用后需要释放内存。 for(i = 0;i < m; ++i) delete [] a[i]; delete []a; return 0; }
以上是关于C++学习总结的主要内容,如果未能解决你的问题,请参考以下文章