gpt4 book ai didi

c - C中枚举值的内存位置

转载 作者:IT王子 更新时间:2023-10-28 23:31:03 29 4
gpt4 key购买 nike

我想我在某处读到在 C 中获取枚举值的地址是非法的(枚举值不是左值;但是,我现在找不到任何相关信息)。这是正确的,如果是,为什么?


编辑:

这是一个示例,阐明了我上面所说的“枚举值”的含义。我的意思是取下面 first_value 的地址,而不是取枚举的实际实例的地址:

enum myenum
{
first_value,
second_value
};

最佳答案

“枚举值”略有歧义;但是,我假设您的意思如下:

enum myenum
{
first_value,
second_value
};

在这种情况下,取first_value的地址是非法的。这样做的原因是 first_value 实际上并不存在于内存中的任何地方......它只是一个常数,实际上是数字 0 的另一个名称(当然,您也不能取地址)。

另一方面,如果您的意思是是否可以获取声明为枚举的变量的地址:

enum myenum x;
enum myenum *mypointer=&x;

那么这绝对是可能的。

关于c - C中枚举值的内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206579/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com