指针的问题~~~

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:31:12
wPrm是一个类

(TUint8*)&wPrm->iErrCode

这个应该怎么理解呢?
其实就是把iErrCode的值强制转化成TUint8类型的数据,对吗?

C++的优先级
优先级 操作符 结合性
1 :: 左
2 . -> [] () 左
3 ++ -- ~ ! - + & * () sizeof new delete castname_cast<type> 单目操作符 右
4 .* ->* 左
5 * / % 左
6 + - 左
7 << >> 左
8 < <= > >= 左
9 == != 左
10 & 左
11 ^ 左
12 | 左
13 && 左
14 || 左
15 ?: 右
16 = *= /= %= += -= <<= >>= &= |= ^= 右
17 throw 左
18 , 左

wPrm应该是个指针 而wPrm->iErrCode 的意思就是(*wPrm).iErrCode
就是取wPrm这个类中iErrCode这个变量
(TUint8*)&(那个变量名)是把这个变量的地址取出来强转成TUint8类型的指针
也就是前面还应该有这样的话
TUint8 *p = (TUint8*)&wPrm->iErrCode;

wPrm这是一个类,*)&wPrm 取这个类的地址,(TUint8*)&wPrm把这个类强制转换成指向TUint8的指针,TUint8*)&wPrm->iErrCode 调用TUint8类的iErrCode 属性(或方法)

(TUint8*)&wPrm->iErrCode
由于->比(类型)优先,所以先执行&wPrm->iErrCode,然后把放回值转换为 TUint8* 类型
----------------
不对!是转换成指针类型 TUint8*

回答的都很好啊。。