C语言指针引用

Posted 之墨_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言指针引用相关的知识,希望对你有一定的参考价值。

int a;
表示一个内存空间,这个空间用来存放一个整数(int);
int* a;
表示一个内存空间,这个空间用来存放一个指针,
这个指针指向一个存放整数的空间,即a)中提到的空间;
int** a;
表示一个内存空间,这个空间用来存放一个指针,
这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。
简单的说,指向了一个b)中提到的空间;
int (*a)[4];
表示一个内存空间,这个空间用来存放一个指针,
这个指针指向一个长度为4、类型为int的数组;
和int** a的区别在于,+++=1之后的结果不一样,其他用法基本相同。
以上四种类型见上图表示。
int (*a)(int);
表示一个内存空间,这个空间用来存放一个指针,
这个指针指向一个函数,这个函数有一个类型为int的参数,并且函数的返回类型也是int
int i;
int *a = &i;		//这里a是一个指针,它指向变量i 
int &b = i;		    //这里b是一个引用,它是变量i的引用(别名)
int * &c = a;		//这里c是一个引用,它是指针a的引用
int **d = a; 		//d是一个指向指针a的指针;
int** &e= d; 		//e是一个引用,他是指向指针a的指针的引用
int & *d;	        //这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的
int *p[]			//指针数组
int (*p)[]		//指向数组的指针
int &a; //只声明而不初始化是错误的,因为引用就是一个别名,
//如果不指明它是谁的别名,则会报错
//引用必须初始化,引用初始化就是将引用绑定到一个变量上。

以上是关于C语言指针引用的主要内容,如果未能解决你的问题,请参考以下文章

求c语言指针方式引用二维数组问题

C语言指针的内存分配和Java中的引用

C语言面试中的问题-指针和引用的使用场景?

C语言没有引用,只有指针

C语言指针引用

C语言指针引用