c - 为什么 char[512] 的地址等于 char[512]

标签 c pointers char

当我声明一个变量时

char buf[512];

&buf是什么意思?

它似乎等于buf :

printf(" buf :  %p %p\n", (void *) buf, (void *) &buf);

打印:

buf :  0x7ffda6053fe0 0x7ffda6053fe0

最佳答案

它是数组中第一个元素的地址(即 buf[0] 的地址)与数组本身的地址(即 buf)。它们是平等的,这并不奇怪。

关于c - 为什么 char[512] 的地址等于 char[512],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289791/

相关文章:

c - 如何从 C 命令行读取星号 ( * ) 作为参数

c - 为什么我会出现段错误?

c - 在辅助函数中设置两个指针相等

c++ - 如果我将结构的 int 成员转换为 char* 以对其进行序列化,那么在反序列化时是否应该将其转换为 int* 类型?

c - 从 XML C 字符串表示中提取值节点

c - 所以我在反转我的弦时遇到了麻烦,它反转了一切,但中间发生了一些奇怪的事情

c++ - 硬件级别的 'for loop' 中发生了什么?内存是自动分配的吗? (C++)

对 dtostrf 函数感到困惑

c - 从产生奇怪输出的字符串中删除字符

c - 如何修复 "used struct type value where scalar is required"?