什么是C表达开头的*的重要性?

什么是C表达开头的*的重要性?,第1张

概述对于那些了解一点c的人来说,这只是一个简单的问题.在表达开头是什么意思? 如…… If (this == thisThingOverHere)ThisThing = *((WORD *) &Array[withThisPosition]); 您可以假设WORD是16位无符号,而Array是8位字节数组. 很难尝试找出这里发生的事情. 干杯 弄清楚正在发生的事情并不困难.让我们分解吧. &Arr 对于那些了解一点c的人来说,这只是一个简单的问题.在表达的开头是什么意思?
如……

If (this == thisThingOverHere)ThisThing = *((WORD *) &Array[withThisposition]);

您可以假设WORD是16位无符号,而Array是8位字节数组.
很难尝试找出这里发生的事情.

干杯

解决方法 弄清楚正在发生的事情并不困难.让我们分解吧.

&Array[withThisposition]

这表示使用Array中的Thisposition元素的地址.相当于Array withThisposition.

(WORD *)

假设由& Array [withThisposition]返回的指针实际上是指向WORD的指针.这称为“强制转换”,因为您告诉编译器将对象与最初的Array类型区别对待.

最后:

*(...)

这表示返回指向的对象.因此返回指向对象内的WORD.

如果我要为你改写这个,我可能会建议:

If (this == thisThingOverHere) {  voID *pointerToArrayELement;  WORD *pointerToWORD;  WORD result;  pointerToArrayElement = &Array[withThisposition];  pointerToWORD = (WORD *)pointerToArrayElement;  result = *pointerToWORD;  ThisThing = result;}
总结

以上是内存溢出为你收集整理的什么是C表达开头的*的重要性?全部内容,希望文章能够帮你解决什么是C表达开头的*的重要性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1222178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存