最近在学数据结构,发现里面几乎都要用到指针,这让我不得不复习一下指针,毕竟指针是c语言的灵魂,弄明白了这个,学其方面也有帮助,因此如今咱们第一天先浅谈指针。数据结构
1、指针概念:学习
一、什么是指针?spa
在讲指针以前,要明白“地址”这个概念(由于这个是理解指针的小前提):寄快递想必你们都不陌生吧,在寄快递的时候,你必须得填写收件人的所在地方(也就是地址),这样快递公司才好运送。操作系统
从这个简单的例子能够看出,地址就是一个标记识别符,你得知道它在哪里,才方便办事,虽然这个例子不太好,但仍是有助于理解(在计算机里面,地址是内存单元的编号,是一个从0开始的非负整数,范围是从0----0XFFFFFFFF(0---4G-1),注意这里的0XFFFFFFFF是32位操做系统的内存空间大小)。好了,例子说完了,回归主题;指针就是地址就是地址,地址就是指针,指针本质是一个操做受限的非负整数,是否是好理解,hhh 。指针
二、什么是指针变量,什么是变量指针?code
本身一开始学习指针的时候,被这个弄晕了头,总是弄错了,非常伤脑筋;那咱们来看一下他们的区别吧(也是对本身再一个学习):blog
a、指针变量:它是一个存放内存单元地址的变量。内存
b、变量指针:简单来讲就是变量的地址io
咱们仍是来看一个简单的代码来理解:class
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 }