注册 登录
编程论坛 C++教室

(int *) 和int *有什么区别

lijunbo 发布于 2011-11-25 12:52, 1039 次点击
请问(int*)和int *之间的区别。
如int * pi=&boy              1
pi=(int *) 0xB8000000           2
表达式1是定义一个指针pi,并将其值初始化为变量boy的地址;
表达式2是什么意思呢??
6 回复
#2
hxcet2011-11-25 13:02
表达式2意思就是把指针pi重设为指向地址0xB8000000,这个地址的类型就是(int *)

[ 本帖最后由 hxcet 于 2011-11-25 13:04 编辑 ]
#3
lijunbo2011-11-25 13:11
以下是引用hxcet在2011-11-25 13:02:02的发言:

表达式2意思就是把指针pi重设为指向地址0xB8000000,这个地址的类型就是(int *)


我明白了 最后pi的地址就是0xB8000000。
那么可不可以将0xB8000000直接赋给pi,即
pi=0xB8000000
这样做可以吗?
#4
hxcet2011-11-25 13:42
回复 3楼 lijunbo
这个不可以的,如果直接赋值,0xB8000000会被当做一个int型的16进制数,而不是地址了,这样是无法赋值给指针pi的,所以必须加(int *)
#5
lijunbo2011-11-25 14:00
回复 4楼 hxcet
thank you very much
#6
hxcet2011-11-25 14:04
回复 5楼 lijunbo
客气哈
#7
qq6054122542011-11-25 16:17
(int *)其实就是类型强制转换
1