漫谈C指针第十二讲---回顾指针概念
2015-09-08 09:36
274 查看
早在前面我就对指针的实质进行了阐述。今天我们又要学习一个叫做“指向另一指针地址”的指针。让我们先回顾一下指针的概念吧。
当我们程序如下声明变量:
程序会在内存某地址空间上为各变量开辟空间,如下图所示:
图中所示中可看出:
i 变量在内存地址5的位置,占2个字节。
a变量在内存地址7的位置,占1个字节。
pi变量在内存地址9的位置,占2个字节。(注:pi 是指针,我这里指针的宽度只有2个字节,32位系统是4个字节)
接下来如下赋值:
经过上面两句的赋值,变量的内存映象如下:
看到没有:短整型指针变量pi的值为5,它就是i变量的内存起始地址。所以,这时当我们对*pi进行读写操作时,其实就是对i变量的读写操作。如:
你可以看看专题前面的内容,那里有更加详细的解说。
当我们程序如下声明变量:
short int i; char a; short int * pi;
程序会在内存某地址空间上为各变量开辟空间,如下图所示:
图中所示中可看出:
i 变量在内存地址5的位置,占2个字节。
a变量在内存地址7的位置,占1个字节。
pi变量在内存地址9的位置,占2个字节。(注:pi 是指针,我这里指针的宽度只有2个字节,32位系统是4个字节)
接下来如下赋值:
i = 50; pi = &i;
经过上面两句的赋值,变量的内存映象如下:
看到没有:短整型指针变量pi的值为5,它就是i变量的内存起始地址。所以,这时当我们对*pi进行读写操作时,其实就是对i变量的读写操作。如:
*pi=5; /* 就是等价于i = 5; */
你可以看看专题前面的内容,那里有更加详细的解说。
相关文章推荐
- 关于指针的一些事情
- 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语言泛型编程实例教程