个人对于指针的理解

指针是c语言中比较重要的一块,接下来让我们来分析一下指针有什么用以及怎么用。

指针顾名思义就是指向某个东西,定义是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值,由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。举个例子,桌面上的快捷方式大家都用过吧,这个快捷方式大家就可以理解为一个指针,它指向了我们要打开的应用的地址。

介绍完怎么指针有什么用那么接下来将要将怎么用,在c语言中有一个符号,是“*”,也就是平时大家所说的星号,它表示的意思是指向某个变量。而声明指针的格式就是 type *var name,type就是c语言中的基本类型,如int,char等等,var name就是变量,大家可以随便取。声明完指针变量后就可以开始使用指针了,让我们来看看例子:

#include <stdc++.h>
using namespace std;
int main() {
  int *bian;//声明指针变量
  int jun = 1;
  bian = &jun;将jun的地址赋给变量
  printf("%d", *bian);//输出指针变量中的储存的值(不是地址)
  system("pause");
}

运行一下会得到一下结果:

可以看到输出的就是我们最先定义的变量jun的值。

可能有人看到这儿还是有点懵,那我们把程序稍微变一变:

#include <stdc++.h>
using namespace std;
int main() {
  int *bian;//声明指针变量
  int jun = 1;
  bian = &jun;将jun的地址赋给变量
  printf("%d", bian);//输出指针变量中的储存的值(不是地址)
  system("pause");
}

输出的结果是:

这个是变量jun的内存地址。为什么在输出时把*bian改成了bian结果就会变成这个样子了呢?细心的人可能已经知道了,在这一行:

bian = &jun;将jun的地址赋给变量

我们运用了“&”符号,它的作用就是取地址。讲到这里应该就能理解带*号和不带*的区别了吧,我们先将地址储存到了指针变量中,在输出时如果我们想输出储存的变量的值那么就需要带上“*”,因为它的意思我们刚才讲过了,是指向一个变量,而我们定义的变量就是jun,而不是jun的地址。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

3 × 5 =