c - C语言中数组首元素的地址和数组的地址一样吗?

标签 c

考虑一下:

int i[50];
void *a = i; //i.e. = &i[0]
void *b = &i;

a == b 是否始终为真,或者是否存在平台/编译器可能并不总是如此?

最佳答案

是的,标准的第 6.5.9 段(相等运算符)说:

Two pointers compare equal if ... both are pointers to the same object (including a pointer to an object and a subobject at its beginning)

关于c - C语言中数组首元素的地址和数组的地址一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289169/

相关文章:

密码中的字符 x,y - LoadRunner

c - C 程序中的多个测试用例不起作用

我可以将 __builtin_*_overflow 用作 += 或 *= 吗?

c - gcc - 独立于操作系统的函数标签

c - 对 AVR 进行编程以解释 Arduino 旋转编码器模块的输入时出现问题

c - 程序崩溃以及编码中算术运算的一些问题

c - "asm Macro"是标准 C 的一部分吗?

c - 动态分配 2 个指针时出错

c - 使用popen的非阻塞管道?

c - 如何高效定义一个128位常量?