C语言指针
C语言中指针具有非常重要的位置,在学习数据结构之前,我们必须得掌握指针的用法。
在我们写代码的时候,程序中的每个变量都会存在内存的某个地址单元中,我们可以通过“&
”符号来实现取地址操作:
#include <stdio.h>
void main(){
int a=0;
printf("变量a的地址: %p\n",&a);
}
运行结果为:
可以看到我们获得了整型变量a
的地址,这与我们本节要讲的指针的关系如下:
指针是一个变量,用来存储另一个变量的地址,即指针用来存储内存位置的直接地址(一个可能不太恰当的例子:妈妈我要吃饭
,饭在碗里
。我们向妈妈要饭吃,但是妈妈并没有直接给我们饭,但告诉了我们饭在碗里,这里碗就充当指针的作用。同理,我们在进行coding的时候,需要访问变量的时候不是直接去访问变量,而是先访问存储变量的地址单元,通过地址来获取变量):
#include <stdio.h>
void main(){
int a=0;
int *p; //申明整型指针变量
p=&a;//将a的地址存到指针p中
printf("a的值 %d\n",*p);
}
C语言中用类型 *变量名来申明指针变量
,如char *p
来申明字符型指针,用* 指针
来访问指针中存储的内容。