詳しい情報がたくさん得られるので、
今特に困っていることではないのですが、私の疑問の解決にご助力いただけると幸いです。
#include <stdio.h> int main(void){ int a = 100; int *p1,**p2,***p3; p1 = &a; p2 = &p1; p3 = &p2; printf("a = %d\n", ***p3); return(0); }このプログラムで p3 が **p3 で実現できないのはなぜだと思われますか。
**p2 は「ポインタのアドレスを入れるもの」で
***p3 も本質的には「ポインタのアドレスを入れるもの」なので、
**p3で問題ないように思うのですが・・・言いたいこと伝わりますでしょうか。
#include <stdio.h> int main(void){ int a = 100; int *p1,**p2,**p3; //***p3 → **p3に変更 p1 = &a; p2 = &p1; p3 = &p2; printf("a = %d\n", ***p3); //表示したいときだけ ***p3 で3つ先の値を意味させる return(0); }このプログラムはコンパイルが通らないのですが、
なぜそういう仕様になっているのか疑問じゃありません?
気が向いたらでいいので返信くれるとうれしいです。