hkkoon 发表于 2010-12-11 22:30:11

int*ptr int(*ptr)有没有区别 另外(int*)ptr怎么理解

请教各位大侠,int*ptr int(*ptr)有没有区别?另外(int*)ptr怎么理解?
        pcflash=(char *)0xfc00;
        piflash=(int *)0xfc00;这样写是什么意思?

hemjidn 发表于 2010-12-11 22:40:11

int(*ptr)不合语法编译时应该不能通过。int*ptr是定义了一个整型指针ptr。(int*)ptr是把prt强制转换成整型指针。

fanwei0731 发表于 2010-12-11 22:41:59

回复【楼主位】hkkoon
-----------------------------------------------------------------------

int *ptr是顶一个int型的指针;
(int*)ptr是将ptr强制类型转换为int型指针
pcflash=(char *)0xfc00;这句话的意思呢就是,将0xFC00转换成char型指针。而将一个常数转换指针的目的是什么呢?就是对地址进行操作。

注:int(*ptr)这个写法不太明白什么意思,等高人解答吧。

hkkoon 发表于 2010-12-11 22:48:34

回复【2楼】fanwei0731
-----------------------------------------------------------------------

而将一个常数转换指针的目的是什么呢?就是对地址进行操作。我明白了,非常感谢啊

hkkoon 发表于 2010-12-11 22:49:40

回复【1楼】hemjidn
-----------------------------------------------------------------------

int(*ptr); 这不是int(*ptr)吗?

hemjidn 发表于 2010-12-11 23:21:43

汗……
int a[]://=>int *a:
a;//=>*a+m;
int(*ptr);//这是定义一个什么数组?你要定位一个无名字的数组吗?int(*ptr)又是什么?
又给吃了加号注意全角符号

fanwei0731 发表于 2010-12-13 22:45:49

int(*ptr); 这是定义在一个一维数组,元素个数为m。而定义了一个数组,需要分配空间给这个数组,pstr中存放的便是这个地址。也就是LS说的定义无名字的数组。刚好在书上看到了这个用法。*ptsr就是指定义的数组中存放的第一个数,*(pstr+1)便是存放的第二个数,以此类推。
页: [1]
查看完整版本: int*ptr int(*ptr)有没有区别 另外(int*)ptr怎么理解