質問: 8 --- %sで表示してみると、ちゃんと "Hello world" と終端文字分まで出力されるのですが なぜsizeof関数の値が代わり、8という結果になってしまうのでしょうか? 基本的な質問かもしれませんが、ご回答よろしくお願いします。
回答: 型が違うことに注目してください。 main内でのstringは配列全体を表しています。 char string[] str_size関数では、char型のポインタです。 char *string ポインタはアドレスですから、32bit環境であれば4バイト、64bit環境であれば8バイトとなります。