【发布时间】:2021-08-26 20:34:03
【问题描述】:
我在 C 中声明了一个非指针变量用作我的 fread 函数的缓冲区。fread 指定缓冲区应该是一个指针,我使用 & 符号指向我的变量的地址buffer(如果我的逻辑是正确的)。我想知道,使用& 指向普通变量的地址是否是个好主意。我不确定这种做法是否是我应该避免的“坏”事情/习惯。非常感谢。
int16_t buffer;
fwrite(&buffer, (size_t) sizeof(int16_t), (size_t) 1, output);
【问题讨论】:
-
"我想知道,使用 & 指向普通变量的地址是否是个好主意"。是的,没关系。如果不在变量上,
&还能用来做什么? -
我还是从 C 开始,特别是指针。我在想也许 & (转到地址)和 * (显示地址内的内容)是为指针严格保留的,在普通变量中使用可能会在我没有注意到的情况下出错。
-
&的全部意义在于获取变量的地址,以便将其放入指针中。 -
我不会认为
&指向地址。&foo是foo的地址。如果你想把一个地址想成是“指向”某物,那并不过分,但&只是一个获取地址的操作符。 -
超级清晰,非常感谢