C语言入门教程-内存地址
[09-12 13:08:24] 来源:http://www.88dzw.com 电路基础 阅读:8336次
文章摘要:下面的代码是另一个例子:#include int main(){int i,j;int *p; /* 指向整数的指针 */printf("%d %dn", p, &i);p = &i;printf("%d %dn", p, &i);return 0;}这段代码告诉编译器打印p保存的地址和i占用的地址。变量p一开始是一个随意的数值或0。i的地址一般是一个很大的数字。例如,运行这段代码后得到的输出是:0 21474782762147478276 2147478276可知i的地址是2147478276。p=&i;这条语句执行之后
C语言入门教程-内存地址,标签:电子电路基础,模拟电路基础,http://www.88dzw.com下面的代码是另一个例子:
#include
int main()
{int i,j;int *p; /* 指向整数的指针 */
printf("%d %dn", p, &i);p = &i;printf("%d %d n", p, &i);return 0;}
这段代码告诉编译器打印p保存的地址和i占用的地址。变量p一开始是一个随意的数值或0。i的地址一般是一个很大的数字。例如,运行这段代码后得到的输出是:
0 2147478276
2147478276 2147478276
可知i的地址是2147478276。p=&i;这条语句执行之后,就保存了i的地址。再试试下面的代码:
#include
void main()
{int *p; /* 指向整数的指针 */
printf("%dn",*p);}
这段代码告诉编译器打印p指向的值。然而p尚未初始化,它保存的地址是0或一个随机地址。多数情况下这将引发一个段错误(或某些其他运行时错误),表明您使用了一个指向无效内存空间的指针。段错误几乎总是由未初始化的指针或错误的内存地址导致的。
通过以上的介绍,现在我们可以从新的角度来理解指针了。请看下面的例子:
#include
int main()
{int i;int *p; /*
p = &i;*p=5;printf("%d %d
程序的运行过程是这样的:
变量i占4字节的内存。指针p也占4字节(在当今使用的多数计算机上,一个指针占4字节内存。现在大部分CPU的内存地址都是32位的,尽管64位寻址已渐成趋势)。i所代表的内存位置有一个确定的地址,本例中是248,440。执行过p=&i;后,指针p也将保存同样的地址。因此变量*p和i是等价的。
指针p原样保存着i的地址。当执行如下的语句时:
printf("%d", p);
程序就会打印变量i的实际内存地址。
Tag:电路基础,电子电路基础,模拟电路基础,电路基础
- 上一篇:C语言入门教程-指向同一地址
《C语言入门教程-内存地址》相关文章
- › C语言入门教程-二进制文件
- › C语言入门教程-打开文本文件
- › C语言入门教程-读取文本文件
- › C语言入门教程-指针
- › C语言入门教程-为什么要用指针?
- › C语言入门教程-指针基础
- 在百度中搜索相关文章:C语言入门教程-内存地址
- 在谷歌中搜索相关文章:C语言入门教程-内存地址
- 在soso中搜索相关文章:C语言入门教程-内存地址
- 在搜狗中搜索相关文章:C语言入门教程-内存地址
编辑推荐
分类导航
最新更新
- · 什么是系统仿真
- · 什么是CPCI
- · 英特尔 Parallel Composer入门
- · 什么是支持数据库,什么是中宏数据库
- · 什么是数据交换技术
- · 什么是内部数据传输率
- · 什么是空间数据交换中心
- · 什么是差异备份
- · 什么是备份集
- · 什么是映像备份
热门排行
- · IGBT模块
- · 什么是24脉波整流变压器
- · 自动变速器不能强制降挡故障原因、诊断与排
- · 什么是MD机
- · 中心频率,什么是中心频率
- · 功率单位mw和dbm的换算表
- · 中值滤波模块设计思路
- · 反馈振荡器的原理
- · 气体激光器简介
- · 数制与进位记数法