#include<stdio.h>
void main()
{
int *c=12345;
printf("dec:%d hex:%x", c ,&c); // (1)
}
行(1)が印刷されます
dec:12345 hex:8af123
where8af123
は明らかにランダムでマシンに依存するアドレスです。
入れたら
printf("dec:%d", *c); // (1)
明らかに失敗します。
だから私の質問は理論的な概念によるものです:
*c
値を保持する必要があります12345
が、そうではありません。なぜ?
そして、このコードでは:
#include<stdio.h>
void main()
{
char *c='a';
printf("address store in c:%d value point by c:%c address of c:%x", c,*c ,&c); //Focus line
}
出力は次のとおりです。
adderess store in c:9105699 value point by c:a address of c:8af564
*c
代わりに'a' を格納するのはなぜc
ですか?
gcc コンパイラ 4.4.3 を使用しています。