指针小谈.指针的值
2015-10-17 23:38
330 查看
先来定义一个指针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类型的指针就只 能挪窝一个字节了。
一,含义
指针官方一点叫做指针变量,但是它的这个变量很是特殊,它只能保存地址,不同的机器的指针大小不一样,例如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类型的指针就只 能挪窝一个字节了。
相关文章推荐
- 关于指针的一些事情
- Lua和C语言的交互详解
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C++智能指针实例详解
- C语言泛型编程实例教程