好库网首页 | 我的好库
好库网 好库网社区
IT社区 » C/C++ » C语言论坛 » 怎样在整型和指针之间进行转换?
回复 发帖

查看:1871    回复:1 怎样在整型和指针之间进行转换?
访问okcool的空间
发表于 2012/6/10 14:47:30
1楼

能否暂时把整数放入指针变量中,或者相反?

访问vchelp的空间
发表于 2012/6/10 14:47:44
2楼

曾经有一段时间,可以确保能将指针转换为整数(尽管谁也不知道究竟是需要int 还是long型),将整数转换为指针。同时可以确保指针在转换为(足够大的)整数及转换回来的时候值不会改变,而且转换(及任何映射)都不应该“让那些知道机器寻址结构的人感到惊奇”。换言之,有整数/指针转换的先例和支持,但这总是和机器相关的,因此不具可移植性。而且总是需要显式的类型转换(但是就算你忘了转换,早期的编译器也几乎不会报警。) 

为了使C语言广泛地可实现,ANSI/ISO C标准削弱了这些早期的保证。指针到整数和整数到指针的转换变成了显式定义的,因此也就没有了指针和整数可以无需修改就相互转换的保证。

 

强制将指针转换为整数和将整数转换为指针从来都不是什么好的实践。当需要同时保存两种类型数据的存储结构的时候,使用联合是一个更好的办法。 

您需要登录后才可以回帖 登录 | 注册
回复 发帖