web-dev-qa-db-ja.com

「構造体」と「構造体」との違いは何ですか?

const struct意味? structとは異なりますか?

40
Manu

const部分は、構造自体ではなく変数に実際に適用されます。

例えば@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
73
GrahamS

つまり、structは定数です。つまり、初期化された後はフィールドを編集できません。

const struct {
    int x;
    int y;
} foo = {10, 20};
foo.x = 5; //Error

EDIT: 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
21
Andreas Brinck

Const構造体は変更できないと思います。つまり、constとして宣言されている構造体のすべてのフィールドは変更できません。

0
Nick

Constは、編集不可宣言および初期化後の構造体のフィールドであり、can構造体からデータを取得することを意味します

0
Sudantha

Word定数自体が示す「定数」は、変更できないことを意味します。これは、あらゆるデータ型の変数に適用できます。構造体はユーザー定義のデータ型であり、構造体の変数にも適用されます。初期化されると、const変数の値は変更できません。

0
Jay