-
当一个程序中同一个变量既是全局变量又是局部变量时,在局部变量的作用域内,全局变量被屏蔽,使用
::
使其在局部变量范围内可见,如:cout << ::x << endl
; -
int *p;
//创建一个指向int的指针
p = new int(10);
//申请一块存放整型编变量的内存空间;
p = new int[10];
//申请连续的10个整型空间;p指向其首地址; -
二维数组的申请:
int (*p)[5] = new int [3][5];
//申请一个3行5列的数组;
这是真正意义上的二维数组,地址空间连续,释放时只用delete []p;
-
用一维数组的方式来定义二维数组(只有每列的地址连续)
delete []p
只能用来释放连续的存储空间。
int *p[3];//建立
for(int i = 0;i < 3; i ++){
p[i] = new int[5];
}
for(int i = 0;i < 3;i ++){
delete []p[i];
}
-
const用法小结(看const后面的修饰):
*1.声明指针常量:
int * const p = &x
;
*p = 100
;
p = &b;
//错误,指针常量不可被改变*2.声明指向常量的指针:
const int *p
;
*p = 2;//错误,p指向的是常量,不可以被改变;*3.声明指向常量的指针常量:
指针本身和指针所指向的值不可改变,限制为只读:const int * const p = &x;
*4. const与参数:
修饰参数说明参数x的值在函数中不能被修改:fun(const int x);
-
使用引用实现双向传值。引用作为函数的参数,可以实现两个变量的改变;
-
引用是对象的一个别名,因此只能始终指向初始化时指向的对象,相当与指针常量;
要求:引用定义时就必须初始化。 -
返回引用的函数:
int &index( int x ){
return a[x];//返回的是一个引用
};
index (2) = 4;//调用;