次のコードの出力結果は何でしょうか? - C言語ポインタ演習

#include<stdio.h>
int main()
{
 char *c[] = {"ENTER","NEW","POINT","FIRST"};

 char**cp[] = {c+3,c+2,c+1,c};

 char***cpp = cp;

 printf("%s\n", **++cpp);

 printf("%s\n", *--*++cpp+3);

 printf("%s\n", *cpp[-2]+3);

 printf("%s\n", cpp[-1][-1]+1);

 return 0;
}

このアイデアを説明するための簡単な図を次に示します。

 ここ:

       c は文字ポインタの配列で、格納される型は char* 型の要素の最初の文字のアドレスです。

       cp も文字ポインタの配列です。格納型は 2 次ポインタ char** 型の要素です。各要素に格納される内容はアドレスです。スペースを指す内容は c 配列要素のアドレスです。

       cpp は 3 レベルのポインタ変数で、型は char*** で、cp のアドレスが格納されます。

分析します:

 分析を要約すると、取得したコードを実行します。


上記はあくまで参考用です

おすすめ

転載: blog.csdn.net/m0_73969113/article/details/130668204