鱼C论坛

 找回密码
 立即注册
查看: 7045|回复: 8

为什么不用整型变量存储地址,而要发明指针变量

[复制链接]
发表于 2014-6-28 18:22:10 | 显示全部楼层 |阅读模式
1鱼币

最佳答案

查看完整内容

←_← 那你怎么区分这个地址对应的内存该怎么读??? 比如 是整形 读四个字节以整形的方式读出来 char型就只读一个字节而且是一以ASCII(临时举个例子)的方式转成字符读出来 ....... 如果就用整形变量怎么解决这个问题??? 还有 整形变量可以直接 赋值的 这个是必须的 但是如果像你这么(ˇˍˇ) 想~直接用整形变量代替指针那就会很危险 你岂不是可以直接定位到某段内存了 C已经够强大了但也还没强大到可以直接这样定位 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-28 18:22:11 | 显示全部楼层
←_← 那你怎么区分这个地址对应的内存该怎么读???
比如 是整形 读四个字节以整形的方式读出来 char型就只读一个字节而且是一以ASCII(临时举个例子)的方式转成字符读出来 ....... 如果就用整形变量怎么解决这个问题???
还有 整形变量可以直接 赋值的 这个是必须的 但是如果像你这么(ˇˍˇ) 想~直接用整形变量代替指针那就会很危险 你岂不是可以直接定位到某段内存了 C已经够强大了但也还没强大到可以直接这样定位 毕竟这太危险了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-28 18:38:56 | 显示全部楼层
为了强调该变量里存储的不是一般的整数。其实,你完全可以用int类型存储地址,在用强制类型转换的前提下,只要你清楚你正在做什么,没有什么是不能做的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-28 19:45:33 | 显示全部楼层
指针包含了俩方面,1,地址,2,类型
整形只能保存地址值,但是编译器不知道你这个整形是地址,还是具体的某个变量的值,分不清

指针编译器一看到,通过指针类型知道指针所指向内存的大小,
通过地址知道在内存的位置,这样就可以找到这块内存了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-28 19:57:39 | 显示全部楼层
汇编正是这样做的,都是dword。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-28 22:37:02 | 显示全部楼层
我也刚刚学指针,指针和整型其实差不多,但指针更加灵活,比如指针变量可以根据++自动计算内存地址,而整型,如果你计算内存地址,还要考虑每个类型的长度,岂不是很麻烦,指针虽然刚刚学有点乱,但绝对比整型好用,不容易出错。人家既然发明出来了,自然有它存在的价值,只是我们还没领悟而已,小甲鱼老师都说了,指针是C语言的精髓,慢慢学吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-28 23:05:43 | 显示全部楼层
My input method does not work.
Int is 4 bytes and pointer is the same in X86,but now pointer is 8 bytes in X86_64 system!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-6-30 12:48:04 | 显示全部楼层
谢谢你们{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-24 11:31:56 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 03:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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