例えばdogと入力したとして
strは先頭のdアドレスを示すポインタです。
そこまではいいでのですが、put_string関数の中で
0以外のものが入ればwhileが進となりputcharが実行されます。
このputchar(str++);は
strポインタに一ずつ足しているんですよね?
実行結果からstrの値に1を足してないのは分かるんですが、すこし書き方が曖昧かなと感じてしまいました。
可能性の話しですが、((*str)++;)とすれば値に1を足す事もできますよね?
++の有効範囲について説明していだけれると嬉しいです。
#include <stdio.h> void put_string(const char *str) { while(*str) { putchar(*str++); } } int main(void) { char str[100]; printf("type strings" ); scanf("%s",str ); put_string(str); putchar('\n'); return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/06 13:00