C、C++、Java、Python、JavaScript の変数のいくつかの特徴

C、C++、Java、Python、JavaScript の変数のいくつかの特徴

★C言語の変数の特徴:

C 言語の変数には型があり、明示的に宣言する必要があります。

C 言語で変数を宣言する場合、メモリ領域を割り当てる前に変数の型を定義する必要があります。

C 言語の変数のスコープはグローバルまたはローカルにできます。グローバル変数は関数の外部で定義され、プログラム内のどこからでもアクセスできます。ローカル変数は関数内で定義され、関数内でのみ使用できます。

C 言語の変数のライフ サイクルは、そのスコープによって決まります。ローカル変数は関数の実行中に作成され、関数が戻った後に破棄されます。グローバル変数は、プログラムの実行中に存在します。

C 言語では、変数をさまざまな型の定数や変数に割り当てることができ、演算子はさまざまな型の変数に作用できますが、変数の型に応じてキャストする必要があります。

★ C++言語の変数の特徴:

C++ はオブジェクト指向プログラミング言語です。クラスとオブジェクトをサポートしています。変数は型を明示的に宣言する必要があります。変数はクラスとオブジェクトを使用して定義できます。

C++ では、変数の宣言と初期化を同時に行うことができます。例: int i = 0; は、整数変数 i が定義され、0 に初期化されることを意味します。

C++ では参照変数が導入されました。参照変数は、相互作用できるように、ある変数を別の変数に関連付けます。参照変数は、関数パラメータの受け渡しと戻り値によく使用されます。(注: C 言語は参照変数をサポートしていません。)

C++ の変数はオーバーロードをサポートしており、同じ変数名を異なるタイプの変数または関数に対応させることができます。

const キーワードと volatile キーワードは、C++ で定数と揮発性変数を定義するために使用されます。const 定数はプログラムの実行中に変更できませんが、揮発性変数は、複数のスレッドで実行される変数など、コンパイラで処理できない変数を表します。

特記事項: C および C++ では、ほとんどの変数のメモリ割り当ては自動的に実行され、手動でメモリを割り当てたり解放したりする必要はありません。これには、スタック上のローカル変数、関数パラメータなどが含まれます。これらの変数がスコープ外になると、そのメモリは自動的に解放されます。

C 言語では、標準ライブラリ関数 malloc、calloc、realloc を使用して動的メモリ割り当てを実行したり、free 関数を使用して割り当てられたメモリを解放したりできます。C++ では、キーワード new および delete を使用して、動的なメモリの割り当てと解放を実行できます。

★Java言語の変数の特徴:

Java はオブジェクト指向プログラミング言語です。クラスとオブジェクトをサポートしています。変数は型を明示的に宣言する必要があります。変数はクラスとオブジェクトを使用して定義できます。

Java の変数のスコープはグローバルまたはローカルにできます。グローバル変数は static キーワードを使用して定義する必要がありますが、ローカル変数はそれが配置されているコード ブロック内にのみ存在します。

Java の変数型のサイズは固定されており、その型とサイズはコンパイル時に決定されます。動的にサイズ変更できるのは配列変数だけです。

Java の変数のデフォルト値は、変数の型に応じて null またはゼロ (0) です。

Java プログラマは、Java プログラムの実行中にメモリの割り当てと解放を直接制御することはできません。Java の変数によって使用されるメモリは、JVM によって自動的に割り当ておよび解放されます。

★Python言語の変数の特徴:

Python はインタープリタ言語であり、変数の型を明示的に宣言する必要はありません。

Python の変数の型は動的です。つまり、変数の型は、変数に割り当てられた値によって決まります。変数は、型変換を行わなくても、いつでもその型を変更できます。

Python の変数は事前に宣言する必要がなく、使用時に直接定義できます。

Python で変数に名前を付ける場合、特定のルールに従う必要はありません。Python では、変数名を数字で始めてはならず、Python の予約語を使用できないことだけが必要です。

Python の変数のスコープはグローバルまたはローカルにできます。関数内で定義された変数のスコープはローカルであり、関数の外で定義された場合はグローバルです。

★JavaScript言語の変数の特徴:

JavaScript は動的に型指定される言語です。変数の型を明示的に宣言する必要はありません。変数の型は実行時に自動的に推定されます。

JavaScript の変数のスコープはグローバルまたはローカルにできます。関数内で定義された変数のスコープはローカルであり、関数の外で定義された変数のスコープはグローバルです。

JavaScript での変数の命名には特定のルールに従う必要はありませんが、Python とは異なり、JavaScript の変数名では大文字と小文字が区別されます。

JavaScript の変数には、文字列、数値、ブール値、オブジェクト、関数など、任意のデータ型を使用できます。

JavaScript の変数は、型変換を行わなくてもいつでも型を変更できます。

特記事項: Python と JavaScript の変数は、その型を明示的に宣言する必要はありません。これは、両方の言語が動的に型指定されるためです - Python と JavaScript は動的に型指定される言語であり、変数を宣言する必要がないことを意味します。そのタイプ。ただし、この 2 つの言語は、文字列と数値の追加など、混合型の操作を処理するための戦略が大きく異なります。

Python の動作は厳密に型指定されています。つまり、型を明示的に変換しない限り、異なるデータ型に対して特定の操作を実行できません。あなたが与えたPythonの例では、1つは数値タイプの値「54」で、もう1つは文字列タイプの値「Hi」です。Python では文字列と数値を直接操作できないため、a + b では TypeError が発生します。数値と文字列を追加する場合は、型変換を手動で実行する必要があります。たとえば、数値を文字列 str(a) + b に変換することは完全に正当です。

JavaScript は比較的緩いため、2 つの異なる基本型のデータを操作しようとすると、JavaScript は自動的に型変換 (この場合は数値を文字列に変換) を実行しようとします。したがって、JavaScript では、 a + b が最初に '54' + 'Hi' に変換され、最後に文字列 '54Hi' が取得されます。これは「弱い型付け」と呼ばれる動作です。したがって、JavaScript は型付けが弱い言語と言われています。

Python と JavaScript はどちらも動的に型指定されますが、Python は依然として「強い型指定」 (特定の型を越えた操作が許可されない) であるのに対し、JavaScript は「弱い型指定」 (自動的に変換され、型を越えた操作が許可されます) です。

次の例は、Python と JavaScript が動的型付け言語であることを示していますが、それでも異なります。

Python では許可されません:

a=54

b=「こんにちは」

a+b #エラーを報告

str(a) + b # '54Hi'

JavaScript で許可されるもの:

a=54

b=「こんにちは」

a+b // '54Hi'

「強い型付け」と「弱い型付け」の厳密で広く受け入れられている定義はありません。C++ と同様に、int から double への変換や、コンストラクターや変換演算子を使用したユーザー定義型の暗黙的な変換など、特定の型の暗黙的な変換が可能です。ただし、C++ は型管理に関して依然として非常に厳密です。たとえば、ポインターを任意に整数に変換したり、構造体を無関係な構造体に変換したりすることはできません。これは、多くの場合、型変換を明示的に実行する必要があることを意味します。したがって、C++ は、いくつかの形式の暗黙的な変換を許可していますが、厳密に型指定された言語であると言えます。

プログラミング言語の弱い型付けと強い型付けについては、https://blog.csdn.net/cnds123/article/details/115275931を参照してください。

おすすめ

転載: blog.csdn.net/cnds123/article/details/132479212