ホームページ  >  記事  >  バックエンド開発  >  C言語の変数の定義には、変数の格納型と変数は何ですか?

C言語の変数の定義には、変数の格納型と変数は何ですか?

青灯夜游
青灯夜游オリジナル
2020-07-27 14:39:455033ブラウズ

C 言語の変数の定義には、変数の格納形式と変数名が含まれます。 C 言語で変数を定義する形式: 「データ型変数名;」。「データ型」は保存するデータの型を示し、「変数名」は変数に付ける名前を示します。通常は文字を使用します。

C言語の変数の定義には、変数の格納型と変数は何ですか?

#変数の定義

変数を定義する形式は次のように非常に簡単です。 :

数据类型  变量名;

最初に強調すべきことは、最後のセミコロンを決して失わないことです。変数の定義はステートメントであり、前述したように、ステートメントはセミコロンで終わります。


「データ型」は、保存する変数の型を示します。整数を格納したい場合は int 型として定義し、小数を格納したい場合は float 型または double 型として定義し、文字を格納したい場合は char 型として定義します...

「変数名」はこの変数に付ける名前です。名前が何であっても、通常は文字を使用します。例:

int i;

は、整数変数 i が定義されていることを意味します。

変数名の命名規則

変数を定義する場合、変数名には文字、数字、アンダースコアを組み合わせて使用​​できます。ただし、ランダムな組み合わせではないため、次の命名規則に注意してください:


1) 変数名の先頭は、数字ではなく文字またはアンダースコアにする必要があります。実際のプログラミングで最も一般的に使用される名前は文字で始まりますが、アンダースコアで始まる変数名はシステム固有です。

ヘッダー ファイルを開くと、そのファイル内の変数名、マクロ名、関数名がすべてアンダースコアで始まっていることがわかります。

したがって、システム定義の名前との競合を避けるために、プログラミング時に、このように定義する必要がない限り、変数名の先頭にアンダースコアを使用しないでください。

2) 変数名の文字は大文字と小文字が区別されます。たとえば、a と A は異なる変数名であり、num と Num も異なる変数名です。

3) 変数名は C 言語のキーワードであってはなりません。これは覚えておいてください。

4) 変数名にスペースを含めることはできません。これは次のように理解できます。 上で述べたように、変数名はスペースを含まない文字、数字、アンダースコアの組み合わせです。

変数の代入

変数を定義した後、変数に数値を入れるにはどうすればよいでしょうか?まず理解すべきことは、変数に数値を代入することを「代入」と呼ぶということです。 「代入」は「与える」という意味なので、「変数に値を代入する」とは変数に値を渡すことを意味します。値を割り当てる方法は?これは代入演算子 = を使用します。代入の形式は次のとおりです:

变量名 =  要赋的值;

= の右側の数値を左側の変数に代入することを意味します。例:

i = 3;

これは、変数 i に 3 が代入され、この時点で i は 3 に等しいことを意味します。

ここで注意しなければならないのは、ここでの=は数学の「等号」とは異なるということです。 C言語を学び始めたとき、この時点では誰もが数学的思考から切り替えるのは困難です。 C 言語では = は代入を意味します。つまり、左側の変数が右側の値と等しいのではなく、右側の値を左側の変数に代入します。

C言語に等号演算子はありますか?これは二重等号 == です。この演算子は、数学の「等しい」と同じ意味を持ちます。

上記は変数の定義と代入を 2 つのステップで記述したものです。これらを 1 つのステップに結合することもでき、実際、実際のプログラミングでは 2 つのステップを 1 つに結合することが最も一般的に使用される方法です。では、どうやってまとめるのでしょうか?非常に単純な形式は次のとおりです:

データ型変数名 = 代入する値;

例:

int i = 3;

は変数 i が定義され、3 が定義されていることを意味します。がこの変数に代入されます。これは

int i;
i =3;

と同等です。

変数を定義するときは、複数の変数を一度に定義することもできます。次に例を示します。

int i, j;

これは、変数 i と j が定義されていることを意味します。ここで強調しなければならないのは、複数の変数を同時に定義する場合、変数はカンマで区切られ、セミコロンで記述してはいけないということです。これは多くの初心者が犯す最も一般的な間違い、つまりコンマとセミコロンを混同することです。

複数の変数を定義し、それらに同時に値を割り当てることもできます。

int i = 3, j = 4;

変数をカンマで区切って、最後にセミコロンを入力することを忘れないでください。

最後に、古い C89/C90 標準 (ANSI C 標準とも呼ばれる) では、変数はプログラムの先頭でのみ定義でき、それ以外の非宣言は存在できないことに注意してください。または変数定義の前の変数。非定義ステートメント。たとえば、C 言語では、次の記述は間違っています:

# include <stdio.h>
int main(void)
{
    int i;
    i = 3;
    int j = 4;  //这句是错误的,因为在它前面有一个给变量i赋值的非定义语句
    return 0;
}

VC 6.0 または VS2010 でコンパイルすると、次のエラーが表示されます:

error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

しかし、この記述は .cpp です。はファイル (C ソース ファイル) 内で使用でき、変数は .cpp ファイル内のプログラム内のどこにでも定義できます。

実はこれは言語そのものとは関係なく、C言語ではプログラムの途中で変数を定義できないというわけではありません。これは実際には標準に関連しています。一部のコンパイラは C89 標準を使用しています。C89 標準では、すべての宣言 (関数宣言、変数定義など) をプログラム、関数または複合ステートメント、および新機能の先頭に記述する必要があります。 「最初に宣言し、後で使用する」原則が守られている限り、ステートメントと宣言はどのような順序でも許可されます。

VC 6.0 と VS2010 は C89 標準に従っているか、C99 標準を完全にはサポートできないため、プログラムの途中で変数を定義することはできません。また、Linux の GCC コンパイラは C99 標準に従っています。 , したがって、これは .c ファイルでもあり、C 言語で書かれており、使用する場所の前であれば、プログラム内の任意の場所で変数を定義できます。

実際には、C99 標準の方が優れており、変数は必要な場合にのみ定義されるため、ライフサイクルが短縮され、メモリが節約されます。変数が定義されている限り、システムはその変数にメモリ領域を割り当てるため、先に定義して最後まで使用されなかった場合、使用されるまでメモリを占有することになり、少し無駄になります。

とはいえ、プログラミングするときは C89 標準に従って書くように努めるべきであり、たとえ C99 標準を完全にサポートするコンパイラであっても、プログラムの途中で宣言を書かないほうがよいでしょう。 C89 は古くから存在しているため、依然として主流であり、多くのコンパイラは依然として C89 標準のみをサポートしているか、C99 標準を十分にサポートできません。したがって、C89 標準に従って作成した方が移植性が高くなります。

上で述べたように、「複合ステートメント」は複合ステートメント内の変数を定義するために使用することもできます。いわゆるステートメントはセミコロンで終わり、複合ステートメントは複数のステートメントを組み合わせたステートメントです。 C言語では、中括弧{ }で囲まれた複数の文を複合文と呼びます。

複合文はプロセス制御でよく使われます。たとえば、後で学習する if、for、while の後には通常、複合文が続きます。現時点では、これらの複合ステートメントでも変数を定義できますが、それは先頭でのみ定義できます。メイン関数 main も中括弧で囲まれているため、メイン関数 main の下の関数本体は本質的に複合ステートメント、つまり大きな複合ステートメントになります。

したがって、これらにはまだ共通点があります。つまり、C 言語では、中括弧 { } で囲まれている限り、先頭に変数を定義できます。そして、中括弧内で定義されたこれらの変数はローカル変数と呼ばれます。さらに、グローバル変数と呼ばれる変数を中括弧の外側に定義することもできます。

推奨: 「c 言語チュートリアル

以上がC言語の変数の定義には、変数の格納型と変数は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。