指针小谈.指针的值

来源:互联网 发布:2017年做淘宝还赚钱吗 编辑:程序博客网 时间:2024/05/20 00:11

先来定义一个指针int *p;

一,含义

       指针官方一点叫做指针变量,但是它的这个变量很是特殊,它只能保存地址,不同的机器的指针大小不一样,例如32位机寻址需要32位,所以指针一般会占四个字节。

二,指针定义的解释

        指针为什么要定义成    int(这个类型可以换)*pointer  这种形式呢,首先由于它是变量,但是它又特殊,所以得给他做个标记,这个*就是标记,表明他是地址变量只能存地           址,*的另一种作用是取地址里面的数据,所以除过定义之外*和指针变量组合表示取地址里面的址。

三,指针的两个指

        学指针时候一定得注意指针的两个值,一个是它自己内存中的值,一个是它所指向的值,例如int a=2;int *p=a;例如a的地址是0X11223344,他的内容是2,那么当p指向a时,p         就保存的是a的地址0X11223344

四,指针分类

     有人会想,既然都是地址,都是4个字节的话,那要int干嘛,要float干嘛,这个int *p,float*p又要定义来干嘛,就是挂个名,表明他不同吗?当然了,c语言里才不会有这种”废话”,既然存在,必        有天理,下来唠叨两句

     既然这个东东叫做指针的话,他就像一个户籍警察,不同的地方警察保存不同地方的户籍,要找一个人看看手里的地址然后去找就行了,而int,float,就像编码方式,假设西安是1,2,3这样      编码,找下一个人就得给户籍加一,而西藏人少,就可以2,4,6…….这样编码,那么找下一个人就要加二了,那么int类型栈四个字节p++每次就会挪窝四个字节,要是char类型的指针就只        能挪窝一个字节了。

0 0
原创粉丝点击