c - 为什么 &(&i) 在 C 中无效?

标签 c

#include <stdio.h>
int main()
{
int i;
i=0;
printf("%d\n%d\n%d\n", i, &i, &(&i));
return 0;
}

我认为 &i 只是一个地址值,假设它是 0xFF 所以 &(&i) 应该是 0xFF 的地址,但为什么它无效?

最佳答案

一元 & 运算符需要一个左值作为其操作数并返回一个右值。 &i 是一个右值,因此 &i 不能是 & 的操作数。

关于c - 为什么 &(&i) 在 C 中无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37376407/

相关文章:

c - 如何从文件中读取不同类型的数据

c - 为树添加值

c++ - 使用指针访问参数接收的结构中的元素时发生内存泄漏

c - 在 C 中的稀疏矩阵表示中添加重复元素

c - 仅获取 C 中数组的所有其他值

c - 线性存储器中的二维数组

c++ - 如何自动将枚举转换为字符串

c - 为什么下面的程序没有生成任何可见的输出?

c - 如何强制测试程序链接到libtool构建的静态库

C 宏/#define 缩进?