C/C++におけるポインタと配列に関する知識

1536 ワード

1次元配列の配列名はヘッダアドレスを表し、2次元配列の配列名は1行目の行アドレスを表し、3次元配列の配列名は最初の2次元のアドレスを表す.siziof()は、パラメータが通常の配列の場合、結果は配列全体のバイト数です.ただし,配列が関数のパラメータとして扱われている場合,以下sizeofを呼び出すと配列名がヘッダアドレスとして扱われ,結果は4となる.
    char *cp[2] = { "abc", "def" };
    char **cpp[2] = { cp, cp + 1 };
    char ***cppp = cpp;//cppp cpp    
    cout << (**cppp + 1) << endl;//"bc"
    cout << *(*cppp + 1) << endl;//"def"
    cout<1)<// "def"
    cout << ***cppp << endl;//a

Int *p=new int[10];//配列はInt*q=new int 10を初期化していません//配列を0に初期化
範囲for 2 D配列:
Int a[2][3]={1,2,3,4,5,6};
Int (&b)[3]=a[1];
for( auto &b:a)
        for( auto &x:b)
        cout<