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语言指针引用的主要内容,如果未能解决你的问题,请参考以下文章