C/C++_地址,存储区
来源:互联网 发布:python-kafka-logging 编辑:程序博客网 时间:2024/06/05 23:57
感觉如果对地址和存储区的联系与区别深入理解的话,在很多问题上都会事半功倍。
存储区:计算机中存放数据的“房间”;
地址:存储区的房间号;
*每个存储区都有一个唯一的地址;
举三两个例子:
例一:
void fun(int x,int y){ int tmp = x; x = y; y = tmp; printf("%d %d\n",x,y); return;}int main(){ int a = 4,b = 8; fun(a,b); printf("%d %d\n",a,b);}
例子二:
void fun(int *p_x,int *p_y){ int *tmp = *p_x; *p_x = *p_y; *p_y = *tmp; printf("%d %d\n",*p_x,*p_y); return;}int main(){ int a = 4,b = 8; fun(&a,&b); printf("%d %d\n",a,b);}
第一个例子的结果应该是:8 4和4 8。原因在于计算机给函数中的形参分配了新的存储区(房间),当实参进入函数时,计算机只是将其中的内容复制到新房间中,我们在新房间的操作当然不会影响到原来的房间;
第二个例子的结果应该是:8 4和8 4。为什么呢,因为该函数的形参是指针,指针里面的东西是地址(房间号),虽然计算机也开辟了新房间,但这个房间是专门用来放房间号的,而我们知道,每一个房间号都与一个房间唯一对应,所以,当我们对房间号进行操作时,自然就会影响到对应的房间;
0 0
- C/C++_地址,存储区
- c++_常量存储
- [C/C++]_[中级]_[数据地址对齐]
- ORACEL数据存储_事务(C#)
- 深入c语言_存储类型
- NTP 文件的存储 C IP 地址
- NTP 文件的存储 C IP 地址
- c+_+
- C的存储区
- C语言随记_关于静态变量地址
- C/C++_
- C/C++_扫雷
- 【c/c++】内存地址
- 数据结构_6:树:C语言_顺序存储
- 数据结构_6:树:C语言_链式存储
- C语言:二维数组的存储及地址表示
- C-存储
- c存储区栈、堆
- Linux练习题1
- osgearth mac/linux 下 cmake 编译安装
- 家政服务管理系统
- UVA - 10474 Where is the Marble?(STL,水)
- LeetCode - Recover Binary Search Tree
- C/C++_地址,存储区
- arcgis10.3安装方法说明
- Java数组技巧
- java数组的最大长度是多少?
- sqlite 简单使用
- 浮点数和十六进制之间的相互转换
- UVA - 101 The Blocks Problem(STL,模拟)
- ruby on rails 局部刷新
- Activity生命周期