char a = 'x';
char *b = &a;
char *c = &b;
printf("%pn", c); //outputs 0060FF04
printf("%pn", &b); //outputs 0060FF04
printf("%pn", *c); //outputs 0000000B
printf("%pn", *&b); //outputs 0060FF0B
printf("%pn", &a); //outputs 0060FF0B
所以基本上,指针的概念对我来说是新的,并且正在运行一些测试以更好地理解它。无论如何,如您所见,第一个和第二个输出与我预期的相似。但是,取消引用字符 c 会输出 0000000B 而不是 a 的内存地址,即 0060FF0B。所以我的问题是,如果c = &b
那么*c != *&b
怎么会呢?
c
的类型应该是char **
,而不是char *
。该程序将0x0060FF0B解释为 1 字节字符,给出0x0B。