const struct
是什么意思?它与struct
不同吗?
答案 0 :(得分:71)
const
部分确实适用于变量,而不是结构本身。
e.g。 @Andreas正确地说:
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
但重要的是变量foo
是常量,而不是struct
定义本身。
您可以将其写为:
struct apoint {
int x;
int y;
};
const struct apoint foo = {10, 20};
foo.x = 5; // Error
struct apoint bar = {10, 20};
bar.x = 5; // Okay
答案 1 :(得分:21)
这意味着struct
是常量,即在初始化之后你无法编辑它的字段。
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
编辑: GrahamS正确指出constness是变量的属性,在本例中为foo
,而不是结构定义:
struct Foo {
int x;
int y;
};
const struct Foo foo = {10, 20};
foo.x = 5; //Error
struct Foo baz = {10, 20};
baz.x = 5; //Ok
答案 2 :(得分:0)
我认为不能修改const结构。换句话说,声明为const的结构的所有字段都是不可修改的。
答案 3 :(得分:0)
Const意味着您在声明和初始化之后无法编辑结构的字段,并且您可以从结构中检索数据
答案 4 :(得分:0)
'const'作为单词常量本身表示意味着不可修改。这可以应用于任何数据类型的变量。 struct是用户定义的数据类型,它也适用于任何结构的变量。初始化后,不能修改const变量的值。
答案 5 :(得分:-2)
你不能修改一个常量结构,第一个结构是一个简单的数据类型,所以当一个const关键字出现时,编译器将在寄存器而不是临时存储(如ram)和变量标识符上保存一个内存空间存储在寄存器中无法修改