鱼C论坛

 找回密码
 立即注册
查看: 2236|回复: 7

[已解决]错误初始化指针事例的问题

[复制链接]
发表于 2018-6-5 13:35:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 三千芳华 于 2018-6-5 13:50 编辑
#include<stdio.h>
int main()
{
        int i=10,j;
        float *pf;
        pf=&i;
        j=*pf;
        printf("i=%d\tj=%d\n",i,j);
        return 0;
 } 
这个书上说这样做运行结果是i=10,j=0;
为什么啊?
顺便这样搞我的dev c++直接报错,改成int就OK了。但是为啥能运行就会是j=0呢?
最佳答案
2018-6-5 14:13:48
三千芳华 发表于 2018-6-5 13:52
哦哦,这样啊。那为啥是j=0啊

1.png
2.png

在地址栏输入 &i (取变量 i 的地址),然后回车
变量 i 的地址是 0x001CFED8
变量 i 中存储的值是 0a 00 00 00 ,这个值就是十进制的 10(能理解这个吗?)


3.png
4.png

在地址栏输入 pf ,然后回车
pf 中保存的值是 0x001CFED8,这说明 pf 指向变量 i


5.png
可以看到,pf 中保存的地址和变量 i 的地址一样


00.png

float 占 4 个字节,也就是把 0a 00 00 00 以浮点数格式解释


6.png
7.png
8.png
9.png
10.png

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-5 13:50:24 | 显示全部楼层
要确保你的源文件是 .c 文件
.cpp 是C++的,C++对类型要求严格

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-5 13:52:12 From FishC Mobile | 显示全部楼层
人造人 发表于 2018-6-5 13:50
要确保你的源文件是 .c 文件
.cpp 是C++的,C++对类型要求严格

哦哦,这样啊。那为啥是j=0啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-5 14:13:48 | 显示全部楼层    本楼为最佳答案   
三千芳华 发表于 2018-6-5 13:52
哦哦,这样啊。那为啥是j=0啊

1.png
2.png

在地址栏输入 &i (取变量 i 的地址),然后回车
变量 i 的地址是 0x001CFED8
变量 i 中存储的值是 0a 00 00 00 ,这个值就是十进制的 10(能理解这个吗?)


3.png
4.png

在地址栏输入 pf ,然后回车
pf 中保存的值是 0x001CFED8,这说明 pf 指向变量 i


5.png
可以看到,pf 中保存的地址和变量 i 的地址一样


00.png

float 占 4 个字节,也就是把 0a 00 00 00 以浮点数格式解释


6.png
7.png
8.png
9.png
10.png

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-5 14:15:57 | 显示全部楼层
后面的我不知该如何解释了
你那里不明白的话,把你的问题提出来
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-5 14:16:31 | 显示全部楼层
人造人 发表于 2018-6-5 14:13
在地址栏输入 &i (取变量 i 的地址),然后回车
变量 i 的地址是 0x001CFED8
变量 i 中存储的值是 ...

我去,这么多,造人大佬有你真好,万分感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-5 14:20:47 | 显示全部楼层
0.png

把 0a 00 00 00 以浮点数格式解释
就是 1.401e-44#DEN

1.png
DEN 一个无限接近 0 的值
把这个值转换成整数,结果就是 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-5 19:27:58 From FishC Mobile | 显示全部楼层
人造人 发表于 2018-6-5 14:20
把 0a 00 00 00 以浮点数格式解释
就是 1.401e-44#DEN


我研究研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-29 22:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表