2010-12-15 6 views
0

私は両方の配列と構造体が変数として数えられることを知っていますが、そのフィールド/要素は何ですか?構造体のフィールドは変数としてカウントされますか?配列の要素は変数としてカウントされますか?

深くネストされた構造体と配列を扱うプログラムについてのドキュメントを書こうとしていますが、これらのフィールド/要素を変数として参照できるかどうかはわかりません。

+0

私はどちらも答えは何かを明確にすることを言うことができます。構造体の定義は型を指定します。変数という用語は、その型のインスタンスを参照します(または、オブジェクトはクラスのインスタンスです)。これらの用語を混ぜているので、質問を明確にしてください。 – ruslik

答えて

1

通常のドキュメントでは、「変数」のような単語は文脈から意味を取ります。他のオプションは、 "値"または "データム"/"データ"です。あなたのインターフェースの説明が明確で一貫性がある限り、あなたが使用しているものは何であろうとは関係ありません。

(規格における言語、および標準化の議論は、何か他のものである。その場合には、より高い精度と定義の多くが必要です。)

0

はい、可変であると仮定して変数を呼び出すことができます。

+0

Cには変わることのできない変数があります: 'const'で修飾された変数。 :-) –

+0

@R:それは本当に変数ですか?私はいつもそれらを一定の条件と考えていました。 – nmichaels

+0

@R:変数ではありません。 –

1

配列要素と構造体メンバは変数ではなく、mallocで取得したメモリも変数を構成しません。 Cでは、変数には名前、スコープ、および保存期間があります。あなたが探している言葉は「対象」です。

+0

Downvoter、コメントしますか?Cの標準を読んでみると、それは私の答えに同意するでしょう。 –

0

C構造体のデータメンバーはフィールドと呼ばれます。

struct Person { 
    int age; 
    int height; 
}; 

年齢と身長はこの構造体のフィールドです。新しいPersonを作成することができ、そのフィールドは構造体のハンドルに基づいて可変です。

struct Person a; 
a.age = 20;  // age and height are variable. You can change them 
a.height = 100; 

const struct Person b = {20, 100}; 
b.age = 10; // compiler error. Person b is a const. age/height are not variable. 

私はこのことができます願っています。

0

構造体と配列はデータ型であり、変数ではありません。

構造体は、他のタイプの複合型です。

This articleは、変数の説明に役立ちます。

別の記事では、私はあなたが変数としてそれらを参照するべきではないと思いますhere

1

です。 R.が正しく述べているように、「変数」はCでよく定義された用語です。おそらく、オブジェクトは何かを意味します。オブジェクトは変数によって参照される場合もあれば、参照されない場合もあります。たとえば、構造オブジェクトの一部であるintオブジェクトのように、部分的なオブジェクトを話すのは完全な意味を持ちます。