Java vs C++ベース異同比較

1941 ワード

データ型
  • Javaには8種類のデータ基本タイプしかなく、C++の基本データタイプは
  • より多い.
    Javaの8つの基本データ型はboolean,byte,short,int,long,float,double,charです
    c++のデータ型が多く、一部の書き方に違いがあります.bool、short、int、long、float、double、char
  • 基本データ型が占有するバイト数は異なります.Javaはプラットフォーム間でサポートされているため、基本データ型ごとに占有されるバイト数は固定されています.c++はプラットフォームによって異なります.

  • Javaのboolean,byte 1バイト,char,short 2バイト,int,float 4バイト,long,double 8バイト.
    c++では、最小サイズ、bool、char 1バイト、int、short 2バイト、long 4バイトを規定し、ビッグデータ型がビッグデータ型より小さくてはならないことを規定している.例えばlongが占めるバイト数はintが占めるバイト数より小さくしてはならない.
  • Javaの数値変数はすべて記号付きであり、c++は記号付きと記号なしの2種類として定義することができる.

  • c++では、符号数が符号なしに加算されると、符号数が符号なしに変換されるので、c++で符号と符号なしが加算されるのは異常かもしれません.
  • Javaでは整数型はブール型と相互変換できないが、c++では可能であり、0ではなく真を表し、0では偽
  • を表す.
    変数#ヘンスウ#
  • Javaの変数の宣言には値を割り当てる必要がありますが、c++は値を割り当てることはできません.

  • Javaでは、変数がクラスにある場合、オブジェクトを作成するときにデフォルト値が割り当てられます.
    c++の変数は、関数外で定義され、値が割り当てられていない場合、デフォルト値も与えられます.ただし、関数内ではメモリの位置によって値が異なります.
    public class Learn{ 
        public static void main(String[] args) { 
            Test test = new Test();
            System.out.println(test.a);
        }
    }
    
    class Test{
        int a;
    }
    
    //   
    //0
    
    int b;
    int main() {
        int a;
        cout << b << endl;
        cout << a << endl;
    }
    
    //   
    //0
    //4354430
    
  • C++のexternキーワードは変数を宣言し、コンパイラにこの変数の値が他のファイルで見つけられることを伝えることができます.
  • 変数の付与方式、c++模様比較多
  • int main() {
        int a{1};
        int b = 2;
        int c = {3};
        int d(4);
        cout << a << endl;
        cout << b << endl;
        cout << c << endl;
        cout << d << endl;
    }
    

    複合タイプ(c++の参照とポインタ)
  • 参照
    リファレンスはオブジェクトのバインドであり、バインドされると変更は許可されません.したがって、参照を初期化する必要があります.
    int a = 1; 
    int &b = a;
    
  • ポインタ
  • ポインタはオブジェクトなので、割り当て初期化操作を行わないことができます.ポインタは、複数回の値付け操作を行うことができます.空のポインタにするには、次の方法があります.
    int *p = 0;
    int *p = NULL;
    int *p = nullptr;