コード:
#include <stdio.h>
int main() {
char *str;
char i = 'a';
str = &i;
str = "Hello";
printf("%s, %c, %x, %x", str, i, str, &i);
return 0;
}
私はこの出力を得る:
Hello, a, 403064, 28ff0b
次の2つの疑問があります。
メモリを割り当てずに文字列を保存するにはどうすればよいですか。
str
は文字ポインタであり、 where char variable を指していますi
。追加するとき、割り当てられていないその場所からのバイトstr = "Hello";
を使用していませんか?5
4
以来、私はそれらを印刷するときに同じ値を持つ
str = &i;
べきではstr
ありませんか?記載を&i
除いた場合も同様です。そして、とが同じである場合、上書きする必要があり、残りは後続のバイトに入ると言ったときに信じます。str = "Hello";
str
&i
str
&i
str = "Hello"
'a'
'H'
'ello\0'
全体の問題は
str = "Hello"
ステートメントにあると思います。思ったようにうまくいかないようです。
誰かがそれがどのように機能するか説明してください??