目次
2. C言語プログラミングで注意すべき64ビットマシンと32ビットマシンの違い
1. C言語のデータ型
まずはC言語全体のデータ型の分類を紹介します。
1. 基本タイプ:
1.1整数型:基本整数 (int)、短整数 (short int)、長整数 (long int)、倍長整数 (long long int)、文字 (char)、およびブール値 (bool)。
注: 整数データは型記号の前で変更できます: signed (符号付き整数型) および unsigned (符号なし整数型)。指定しない場合、デフォルトは「符号付き型」です。
1.2浮動小数点型:単精度浮動小数点 (float)、倍精度浮動小数点 (double)
2. 列挙型:
列挙型。列挙型は列挙型 ( enum ) のみです。
3. 空のタイプ:
空のタイプ。空の型は単なる空の型 ( void ) です。
4. 派生型:
派生型。派生型には、ポインター型 (*)、配列型 ([ ])、構造体型 (struct)、共用体型 (union)が含まれます。
参考のためにマインドマップを提供してください
2. C言語プログラミングで注意すべき64ビットマシンと32ビットマシンの違い
データ型、特に int 関連の型は、マシン プラットフォームによって長さが異なります。C99 標準では、特定のデータ型の長さは指定されておらず、レベルのみが指定されています。次の比較を行ってください。
32 ビット プラットフォームの場合:
文字 | 1バイト |
短い: | 2バイト |
整数 | 4バイト |
長さ | 4バイト |
長い長い | 8バイト |
浮く | 4バイト |
ダブル | 8バイト |
ブール | 1バイト |
ポインタ | 4バイト |
64 ビット プラットフォームの場合:
文字 | 1バイト |
短い: | 2バイト |
整数 | 4バイト |
長さ | 4バイト |
長い長い | 8バイト |
浮く | 4バイト |
ダブル | 8バイト |
ブール | 1バイト |
ポインタ | 8バイト |
明確にしておきますが、この表はすべての基本的なデータ型をカバーしているわけではありません。
バイトについて特別な理解がない場合は、私のこの記事を読んでください: http://t.csdn.cn/myTeu
3. 相違点
Java のデータ型と C 言語のデータ型には多くの類似点がありますが、多くの相違点もあります。
Java のデータ型は、主に基本データ型と参照データ型の2 つのカテゴリに分類されます。
4 つのカテゴリに 8 つの基本データ型があります。
1. 4 種類: 整数、浮動小数点、文字、ブール値
2. 8 種類:
1. Java コードは、オペレーティング システムとは関係のない JVM 仮想マシンで実行されるため、32 ビット システムであっても 64 ビット システムであっても、Java の int は 4 バイト、long は 8 バイトを占有します。 bytes. C言語ではシステムを見る必要があります。
2. Java の文字は 2 バイトです。これは、Java が Unicode 文字セットを使用しており、ASCII 文字セットよりもはるかに多くの文字を表現でき、中国語、ラテン語などの多くの言語が含まれているためです。したがって、C 言語の char 容量 (255) からすると、格納するには程遠いです。したがって、Java の char の容量も 2 バイトになりました Java の char は符号なしの数値なので、その容量は 65535 になります。したがって、Java の文字型は、C 言語では表現できない多くの文字も表現できます。C 言語のデフォルトの char 型は符号付きであり、C 言語では中国語の文字を表現できません。
3. Java 言語にはバイトのタイプがありますが、C 言語にはありません。
4. Java 言語には文字列型がありますが、C 言語にはありません。
5. Java 言語の整数型には、C 言語のような符号付き型や符号なし型がなく、正負の両方の数値を表現できます。
6. Javaではtrueとfalseを表すためにC言語にはないブール型(Boolean型)が導入されており、このうちブール型trueはtrue、falseはfalseを表します。これは、C 言語では 0 が false であり、Java ではゼロ以外が true ではないというステートメントにもつながることは注目に値します。
7. Java のリテラル値には、整数 1 などのデフォルトの型があります。デフォルトの型は int 型です。long 型の変数を書きたい場合は、long a=1L (L は小文字にすることができます) のみを書くことができます。 , 浮動小数点型にも同様の規定があり、小数点はデフォルトではdoubleなので、float型の変数を書きたい場合はfloat b=0.5f(fは大文字でも可)としか書けません。
8. Java では、ローカル変数に値が割り当てられていない場合、コンパイルは成功せず、コンパイラはエラーを報告します。一方、C 言語では初期化する必要はありませんが、ローカル変数はランダムな値です。
9. Java の対応するデータ型は、小さいバイト番号から大きいバイト番号までしか割り当てることができませんが、C 言語では効果がありません。たとえば、Java の double 型のデータを float 型に割り当てることはできませんが、C 言語では影響を受けません。
以上が Java 言語と C 言語のデータ型の違いですが、誤りや不備があればご指摘ください。