我正在从“理解 C 中的指针”一书中做一些练习。这本书给了你一段代码,并询问你在输出中得到了什么。
其中之一如下:
#include <stdio.h>
int main(int argc, char* argv[])
{
char c, *cc;
int i;
long l;
float f;
c = 'Z';
i = 15;
l = 77777;
f = 3.14;
cc = &c;
printf("c=%c cc=%u\n", *cc, cc);
cc = &i;
printf("i=%d cc=%u\n",*cc,cc);
cc=&l;
printf("l=%ld cc=%u\n",*cc,cc);
cc=&f;
printf("f=%f cc=%u\n",*cc,cc);
return 0;
}
输出是:
c=Z cc=1946293623
i=15 cc=1946293616
l=4294967249 cc=1946293608
f=0.000000 cc=4294967235
我不明白为什么 l
并且f
不打印为77777
and 3.14
?
我检查了 The C Programming Language 一书,看看printf
' 的控制字符是否正确,它们是否正确。