指针是什么?(超详讲解)第一课——指针变量的初步了解

 大家好啊!                                                              

很多人不懂什么是指针 ,

所以我做了一个简单易懂的指针教程。

文中符号的意思

//                                             =需要注意的地方。

//                                         =重点。

//                                     =非常非常重要的地方。

1234567                                 =特别特别重要的地方

什么是指针?

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向
(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的内存单元,可以
说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址
的内存单元。

 其实计算机在设计的时候很多东西都是参考的生活中的东西

我国的国土面积:960万平方公里,这么大的国土面积是怎么合理使用的呢?聪明的国家领导人就想到,将这一大块区域进行划分,先划分为各个省,每个省再划分为各个市区,市区又划分为县城,县划分为镇,镇又划分为村,每个村的每户人家都有门牌号,可以很方便的找到,这样就对这样一大块区域进行了很好的管理。

那么其实电脑的设计也是这样的,在学C语言的这个阶段,我们常说的计算机的内存划分为3部分,栈区,堆区和静态区。

 计算机在最终也是将内存划分为了很小的空间--内存单元。

我们平时要在学校找一个同学,也是先确定他的宿舍编号然后才去找的,不可能盲目的去找,而这里宿舍编号就是地址。

那在计算机内存中,我们想要找到某个内存单元,也是要知道它的编号呀,所以这里就对每个内存单元都进行了编号处理,将编号就称为内存单元的地址。

eg.我国的国土面积:960万平方公里,这么大的国土面积是怎么合理使用的呢?聪明的国家领导人就想到,将这一大块区域进行划分,先划分为各个省,每个省再划分为各个市区,市区又划分为县城,县划分为镇,镇又划分为村,每个村的每户人家都有门牌号,可以很方便的找到,这样就对这样一大块区域进行了很好的管理。

那么其实电脑的设计也是这样的,在学C语言的这个阶段,我们常说的计算机的内存划分为3部分,栈区,堆区和静态区。

————————————————

注:
 

以上参考了CSDN博主「Go-ly」的文章
原文链接:https://blog.csdn.net/weixin_46531416/article/details/120368009                                  

————————————————


首先,让我们看一段程序:

#include<stdio.h>
main()
{
int *a,b=3;
a=&b;
}

此程序先是定义了一个名为 a 的指针变量和一个名为 b 的int变量。

b=3。

//定义指针变量是要加*号。

接着将b的地址给了a,也就是a指向了b。

//给指针变量赋地址时,要加地址符(&)。

这时,如果输出*a,那么输出结果是3,因为b的值是是3,而a指向了b。

//在引用指针指向空间的值时,要在指针变量前面打*。

#include<stdio.h>
main()
{
int *a,b=3;
a=&b;
*a++;
}

这时,我们把a指向的值++,也就是b++,所以b是4(3(b的值)+1(*a++=b++)=4)。

这就是指针变量的基本用法。

让我们再看一段程序:

#include<stdio.h>
main()
{
int *b;
b=1;
}

这个程序就是错的,因为指针变量只能存其他变量的地址,不能存数值。

让我们最后看一段程序:

#include<stdio.h>
main()
{
int **k,*a,b;
a=&b;
k=&a;
}

程序中,出现了带两个*的变量,它其实也是指针变量,只不过它是用于指向指针变量的指针变量。同理,三颗*的指针变量,是用来指向 指向指针变量的 指针变量。

Guess you like

Origin blog.csdn.net/mooczhimahu/article/details/121776763