質問: { "Love", "you will be here", "NOnoNONO!!" }; ``` これの各要素にアクセスできません。 printf("%s", *(str + 1)); ok! printf("%c", *(str + 1) + 3); NO! printf("%c", str[1][5]); NO! いろいろ試してみましたが、ダメです。 どうすれば、%cで各要素の文字を取り出せますか??
回答: うん...? ``` printf("%c", str[1][5]); NO! ``` これはNOじゃないはずだけど *(str + 1)はstr[1]と等価ですよね そしてstr[1]は2番目の文字列の先頭アドレスです。 文字を得るには更にその先を参照しなくてはいけません。 `*(*(str+1)+3)`もしくは`*(str[1]+3)`でもいいですが、 普通のプログラマーならこんなシンタックスで遊ばず ``` char *s= str[1]; printf("%c", s[3]); ``` このようにします。 strike君はもう少し基礎を大事にしましょう。 当てずっぽで辻褄合わせみたいにして考えてるから見かけ上の類似性に惑わされて理解が進まないんだと思います。 やろうと思えばいくらでも分かりにくく書けます。 どう繋がるかを正しく理解しましょう。