图示指针
来源:互联网 发布:linux ping.exe 编辑:程序博客网 时间:2024/03/28 22:38
指针,应该说指针类型,是一种数据类型,像int类型,char类型,short类型等基础数据类型一样,它定义了一种指向数据地址的数据类型。
而定义数据类型的目的,是让编译程序在编译代码时,给相应的数据类型分配数据空间,比如,定义一个变量 int a;则编译程序编译时会给变量a分配连续4字节的内存地址(通常使用的环境),而a变量的地址则指向这4个字节的首地址,这连续的4字节就可以存储0x0~0xffffffff的值,这个值正是变量a的值;而如果我们定义char b;则编译程序会给变量b分配一个字节的内存地址,b变量的地址就是这个字节的地址,这个字节就是变量b所能存储的空间,也就是0x0~0xff的范围。
同理,定义一个指针类型的变量 char *c;在编译时,编译程序会分配连续4字节的内存空间用于存储一个32位的地址,为何分配连续4字节的空间,因为在我们目前使用的32位机上,地址线都是32位,而要表达32位的地址,就需要使用32位的数据来表达,而4个字节,每个字节8位,刚刚32位,刚好可以表达一个地址;因此,只要定义的数据类型是指针类型的数据,则不论什么样的指针类型,它所占用的地址都是4字节的,即不论 int *i;char *i;short *i;int **i;char *i[]等等,都是分配了连续4字节的空间,用于存储一个地址的信息;同样的,这个变量本身的地址指向这个连续4字节的首地址。
定义一种数据类型的变量后,通常情况下我们是直接使用这个变量的值,而不是使用这个变量的地址,比如,int i=30;当我们使用i时,就是使用i变量的值,也就是30这个值,而不是i的地址&i;而对于指针变量,由于变量所存储的值是地址(另一个变量的地址),因此,我们如果要使用这个变量,那么我们需要使用取值操作,才能把指针变量所指向的变量的地址的值取出来,例子:int i,*j=&i;那么我们定义了一个int 指针变量j,这个变量的值存储了变量i的地址,那么,当要通过指针变量j获得i地址中的值时,需要使用取值操作,即*j这样的操作,它的过程是
1.指针变量j的4字节内存空间中存储了变量i的地址
2.通过取值操作*,把j变量的值(也就是i变量的地址)进行取值操作(即对i变量的地址进程取值操作),从而得到i的值
这里,指针类型的变量跟其他类型的变量的区别在于,指针变量的值是地址值,需要一个取值的操作过程。
- 图示指针
- 内存-指针-数组简单图示
- C语言指针简析&图示
- 图示
- 图示
- 图示
- 指针动态内存分配小程序和图示举例
- UML图示
- MmGetPageOp图示
- UML图示
- 继承图示
- OpenMax图示
- UML图示
- LVM 图示
- Git图示
- UML图示
- UML图示
- git图示
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第19讲_js运行原理_js开发工具介绍_js程序(hello)_js基本语法_学习笔记_源代码图解_PPT文档整理
- Android用悬浮按钮实现翻页效果
- CListCtrl
- 解决浏览器间的不兼容问题---火狐正常显示,其他浏览器有问题的情况
- word2007中生成统计图的两种方式
- 图示指针
- 337. Once a thief, always a thief. 偷盗一次,做贼一世
- 3D分析之常用转换工具
- 字符串常量 (找工作时候看的)
- 高校巡讲总结
- jetty-start(2)
- 路径
- 插入排序 算法
- 实例失败。 运行asp.net网站的时候出现的错误提示