#include <stdio.h> int main(void) { char str[] = "abcde" ; for (char* p = str; *p; ++p) { ++(*p); printf("%s\n", &(*p)); } }
のプログラムがなぜ以下のようになるかわかりません。
どうか図などを用いて詳しく説明して頂けないでしょうか?
bbcde ccde dde ee f
特に
for (char* p = str; *p; ++p) { ++(*p); printf("%s\n", &(*p)); }
の++pと ++(*p)の違いがよくわからず混乱しています。
編集
ちなみに、
#include <stdio.h> int main(void) { char *str[] = "abcde" ; for (char* p = str; *p; ++p) { ++(*p); printf("%s\n", &(*p)); } }
char str[] = "abcde" をchar *str[] = "abcde" ;とした場合は処理や結果はどのように変わるのでしょうか?
「どういう出力を期待しているのか」を追記してもらえると答えが得られやすくなります。
teratailでは、マルチポスト※の推奨はしていません。
やむを得ず複数のサイトに質問を投稿された場合は、質問内容にマルチポストをする理由を書き、他のサイトの投稿へのリンクを貼ってください。また、解決した際には必ずteratail及びすべての投稿に解決した旨と、どのように解決したかを記載してください。
まだマルチポスト病は治ってなかったのか
そもそも治す気がないらしい
暫く大人しくしてたから漸く入門始めたと思ったらこれかぁ
回答2件
あなたの回答
tips
プレビュー