uchar后面加两个星号是什么意思?uchar** 或uchar*,(uchar *)和(uchar **)和(UCHAR *)(*Menu_List)等

[复制链接]
查看11 | 回复2 | 2011-5-18 11:23:08 | 显示全部楼层 |阅读模式
形如voidUpDate_Menu(UCHARFirst_Index,UCHARMenu_Index,UCHAR**Menu_List和List_Num=(UINT)**Menu_List;及(UCHAR*)Menu_List,最好能给点详细讲指针的资料……谢谢,请尽快……谢谢谢谢
回复

使用道具 举报

千问 | 2011-5-18 11:23:08 | 显示全部楼层
uchar是自定义的一个类型
应该是
typedefunsignedcharuchar;

uchar**是二级指针,即指向指针的指针,
uchar*是一级指针,它的内容是一个地址
(UCHAR*)Menu_List强制转换,成uchar*类型

我看没人回就简单跟你说说,你要是这个都不懂,看啥代码都是白搭,徒劳的,书上的内容先看看吧









<h4class=\"ask\">追问


我知道是指针,也知道是二级指针,我想问的是(uchar**)menu他和uchar**menu,还有(uchar*)*menu等等之类的区别……位置不同肯定意义会不同嘛……尤其是第一个放到uchar后面是指谁的指针?我看书没有放uchar后的例子,都是放到变量前面!如果你懂这些呢,就讲讲吧……你前面说那些就不用讲了,我懂那几个定义,谢谢
回复

使用道具 举报

千问 | 2011-5-18 11:23:08 | 显示全部楼层
(UCHAR*)(*Menu_List)强制转换
基本可以确定Menu_List为二级指针,*Menu_List就将它解引用变成一级指针,再强制转换成(uchar*),这个操作的意义可能就是为了将它一级指针转成字节类型

UCHAR**Menu_List这个就是参数类型是二级指针

(UINT)**Menu_List;menu_list解2次引用就变成了基本类型,然后强制成int,具体含义不清楚,要看Menu_List的基本类型是什么

(UCHAR*)Menu_List,menu_list的某一个元素,强转成uchar*,也是为了取字节类型指针

总结:
一般强制转换都是(uchar*),括号里面是转换后的类型,对指针取*,是解引用,即减少一级指针
比如
int*p=
*p和a是等价的

其他的就没啥了
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行