*&Var - 1.0f 是什么意思?
What does *&Var - 1.0f means?
在学习一些教程时,我遇到了一个奇怪的 C++ 表达式:
uint64_t var = ....
return (*&var) - 1.f;
这是什么意思?它是对指针的引用吗?从引用中减去 1
有什么意义?应该是LCG算法的实现。
var
是一个标识符。它命名一个变量。
一元运算符&
是addressof运算符。 addressof 运算符的结果是指向由其操作数命名的对象的指针。 &var
是指向变量 var
.
的指针
一元*
运算符是间接运算符。给定一个指针操作数,它间接通过该指针,结果是指向对象的左值。它是 addressof 运算符的反函数。
当您获取一个对象的地址,然后通过该指针间接访问时,结果值就是您获取其地址的对象。本质上,在这种情况下 *&var
是一种不必要的复杂方式来编写 var
.
What's the point of substracting 1 from reference?
在这种情况下,引用的值是一个整数。整数减去1.f的要点是得到比较小的浮点型数值
在学习一些教程时,我遇到了一个奇怪的 C++ 表达式:
uint64_t var = ....
return (*&var) - 1.f;
这是什么意思?它是对指针的引用吗?从引用中减去 1
有什么意义?应该是LCG算法的实现。
var
是一个标识符。它命名一个变量。
一元运算符&
是addressof运算符。 addressof 运算符的结果是指向由其操作数命名的对象的指针。 &var
是指向变量 var
.
一元*
运算符是间接运算符。给定一个指针操作数,它间接通过该指针,结果是指向对象的左值。它是 addressof 运算符的反函数。
当您获取一个对象的地址,然后通过该指针间接访问时,结果值就是您获取其地址的对象。本质上,在这种情况下 *&var
是一种不必要的复杂方式来编写 var
.
What's the point of substracting 1 from reference?
在这种情况下,引用的值是一个整数。整数减去1.f的要点是得到比较小的浮点型数值