#include<stdio.h>
void main()
{
int *c=12345;
printf("dec:%d hex:%x", c ,&c); // (1)
}
第 (1) 行打印
dec:12345 hex:8af123
8af123
显然地址是随机的和机器相关的。
当我投入
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
- 为什么将“a”存储在
*c
而不是存储在c
?
我正在使用 gcc 编译器 4.4.3。