指针:
int *a; 表示a首先是个指针,该指针指向的变量类型为int
int (*a)[3] ; 表示a是指针,指向的是一个数组,数组里的元素类型为int
int **a; 表示a是指针,该指针指向另一指针,另一指针指向的是一个变量,改变量的类型为int;
int *a[3]; 表示a是一个含有三个元素的数组,数组的元素类型为int类型的指针;
数组:
int a[3];a其实是个指针它指向的是一块内存区域,该区域内放下三个int类型的值
例如 int a[3] = {1,4,3};
cout<<*a<<endl;
结果为1;
cout<<*(a+1)<<endl;
结果为4;
int a[2][3]; a是个二维数组变量,但其实a也是一个指针,只是和一维数组的指针不一样,一维数组的指针指向的是int类型的变量,而二维数组的指针指向的是一个数组;
例如 int a[2][3] = {{1,2,3},{4,5,6}}; a指向的是一个数组该数组含有三个int类型的元素;
即 int (*p)[3] = a;
cout<<*a[0]<<endl;//相当于a[0][0]
cout<<*a[1]<<endl;//相当于a[1][0]
结果为:1
4
引用:
char *a = "123344";
char* &b = a;//表示b首先是个引用,接着该引用 引向的是char指针类型的变量,即b引用的的是一个指针该指针指向一个char类型 所以a可以赋值给b;
char c= 'c ';
char &b://表示b是个引用,引用的是一个char类型的变量
b = c;