在使用一些教程時,我遇到了一個奇怪的 C 運算式:
uint64_t var = ....
return (*&var) - 1.f;
這是什么意思?它是對指標的參考嗎?1
從參考中減去有什么意義?它應該是 LCG 演算法的實作。
uj5u.com熱心網友回復:
var
是一個識別符號。它命名一個變數。
一元運算&
符是地址運算子。addressof 運算子的結果是指向由其運算元命名的物件的指標。&var
是指向變數的指標var
。
一元運算*
符是間接運算子。給定一個指標運算元,它間接通過該指標,結果是指向物件的左值。它是 addressof 運算子的倒數。
當您獲得一個物件的地址,然后通過該指標間接獲得地址時,結果值就是您已獲取其地址的物件。本質上,在這種情況下*&var
是一種不必要的復雜撰寫方式var
。
從參考中減去 1 有什么意義?
在這種情況下,參考的值是一個整數。整數減去 1.f 的目的是為了得到更小的浮點型別的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/480189.html