Cがメモリにどのように配列を格納するのか混乱しています。以下の例から、str1のアドレスはその値に等しい。私は結果をメモリアドレス&として解釈していました。str1にはアドレス自体の値が入っています。しかし、これは当てはまりません。他の例では、str1のアドレスに文字列の最初の値(この場合は "H")が含まれていることが分かりました。Cの配列名のメモリ位置
私の質問になることができます:str1のアドレスはどこに保存されていますか?
#include <stdio.h>
int main(int argc, char const *argv[]) {
char str1[] = "Hello World";
printf("%d %d %c\n",&str1,str1,str1[0]);
return 0;
}
「str1のアドレス」と言うとき、それはどういう意味ですか? –
'str1'は配列なので、ここでその名前を使用するとそのアドレスになります。 '&str1'は' str1'と同じ値に評価されます。 'str1 [0]'は最初の要素の値です。 –
@PaulOgilvie '&str1'と' str1'は同じ値ですが異なる型を評価します。 –