我正在尝试读取一个文件并将其复制到另一个文件。我正在网上查看一些代码,我似乎注意到有些代码是这样声明 fread 的:
fread (buffer, 1, 1000, src)
这样一些
fread (&buffer, 1, 1000, src)
假设我已经声明了这一点:
typedef uint8_t BYTE;
BYTE buffer[1000];
这两者有何不同?
最佳答案
&buffer
返回指向数组的指针。该指针的类型为 BYTE (*)[1000]
。
当在需要指针的地方使用数组时,它会退化为指向其第一个元素的指针,因此 buffer
相当于 &(buffer[0])
在这个情况下。该指针的类型为 BYTE*
。
两个指针都指向同一个地址。
关于c - fread(&buffer...) 和 fread(buffer...) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68173954/