作业帮 > 数学 > 作业

请问(prog_uchar *)&command2;和(prog_uchar )&command2; 两者的区别 ,谢谢

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/07/31 13:24:56
请问(prog_uchar *)&command2;和(prog_uchar )&command2; 两者的区别 ,谢谢,拜托各位!
请问(prog_uchar *)&command2;和(prog_uchar )&command2; 两者的区别 ,谢谢
变量前加(类型名)是指强制转化
前者的把后面的&command2转化为prog_uchar类型数据的指针.后者是将&command2转化为prog_uchar类型的变量.
再问: 我的理解是&command2这个不 也是指针么?然后转化为(prog_uchar )类型的指针么,谢谢
再答: 是的。 &command2这个指针的类型不一定是prog_uchar类型的指针。&command2可以是int 类型的指针,也可以是char 类型的指针,还可以是float类型的指针。所以得强制转化一下。
再问: 我的理解是&command2在它前面加上prog_uchar -- prog_uchar(&command2)不是变成了prog_uchar类型的指针吗。为什么还要加*号呢? 谢谢
再答: 如果不加*号,prog_uchar(&command2)
就表示把&command2转化为变量。
比如
int i,*p;
p=&i;
(float) *p是把p指针转化为float类型的指针。
(float) p 是把p指针转化为 float类型的变量。