最近在学数据结构,发现里面几乎都要用到指针,这让我不得不复习一下指针,毕竟指针是c语言的灵魂,弄明白了这个,学其方面也有帮助,所以现在我们第一天先浅谈指针。

           一、指针概念:

                  1、什么是指针?

                          在讲指针之前,要明白“地址”这个概念(因为这个是理解指针的小前提):寄快递想必大家都不陌生吧,在寄快递的时候,你必须得填写收件人的所在地方(也就是地址),这样快递公司才好运送。

从这个简单的例子可以看出,地址就是一个标记识别符,你得知道它在哪里,才方便办事,虽然这个例子不太好,但还是有助于理解(在计算机里面,地址是内存单元的编号,是一个从0开始的非负整数,范围是从0----0XFFFFFFFF(0---4G-1),注意这里的0XFFFFFFFF是32位操作系统的内存空间大小)。好了,例子说完了,回归主题;指针就是地址就是地址,地址就是指针,指针本质是一个操作受限的非负整数,是不是好理解,hhh 。

                   2、什么是指针变量,什么是变量指针?

                            自己一开始学习指针的时候,被这个弄晕了头,老是弄错了,很是伤脑筋;那我们来看一下他们的区别吧(也是对自己再一个学习):

                                   a、指针变量:它是一个存放内存单元地址的变量。

                                 b、变量指针:简单来说就是变量的地址

                          我们还是来看一个简单的代码来理解:

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int * p;   //p是一个变量名字,int * 表示该p变量只能存储int类型变量的地址 ,也就可以理解上面那个指针变量 
 5     int i=10;
 6     int j;
 7     
 8     
 9     p=&i;   //这里的"&"是一个取地址符号,把i变量的地址取出来赋给指针p,这里可以理解上面那个 变量指针,也就是说的变量地址,因为其实每个变量在内存单元中都有一个地址标识符 
10     printf("%p\n",p); #打印出p的地址
11  }

                      

   

 

              

posted on 2019-05-09 23:56  txp玩linux  阅读(135)  评论(0编辑  收藏  举报