C语言入门——指针基础

大三考研狗一枚,大一没有认真学习C语言,现打算悔过自新重头来过,于是我打算先拿三年前课上学习C语言的难点——指针开刀。

关于符号“&”和“*”

首先来说,“&”是取地址符号,它表示将某个数据的所在地址提取出来。如“&a”表示数据a的所在地址是什么。其次“*”是取值符号,它常用于指针中。例如“*p”表示的就是地址为“p”的内存中所含数据。

实践练习

首先让我们打开dev c++

然后输入这样一段程序:
#include
#include

int main(int argc, char *argv[]) {
int a=4;
int *p=&a;
printf(“p=%d\n”,p);
return 0;
}

运行结果如下:
C语言入门——指针基础_第1张图片

初学者的话可能会对运算结果感到意外,认为p的结果应该是4才对。这里需要注意的是在printf()函数里如果只写“,p”,输出的结果就会是p存放的,int数据a所在地址的值(一般为十六进制)。如果想要用指针来输出所指向的数据的值,那么我们需要的是使用前文所提及的取值符号*p。
让我们改一下printf()那行代码。
printf(“p=%d\n”,*p);
再看一下输出结果:
C语言入门——指针基础_第2张图片

现在就对了。

那么还有一个问题,如何使用指针实现对数据的传递呢?
让我们再来修改一下代码,即插入一行这样的代码:
int c=5+*p;

之后输出c,结果如下
C语言入门——指针基础_第3张图片
可以看出,如果想要应用指针实现值传递,那么一定不能忘记加上取值符号。

你可能感兴趣的:(C语言入门——指针基础)