嗯,别说小朋友,“大”朋友和“老”朋友也会被吓着的。
话说 float x='M'; printf("%f",x); 中的 float x 会被“升级”为 double 确实说不过去!
printf("%c",'M'); 中的参数在传递的时候会占 32 bits 用“升级”的说法勉强也说得过去,因为本质说在C语言看来,char 也是整数(只不过只有8-bits 就是了)。不过更根本的原因是计算机体系结构中,堆栈通常是按机器字对齐的。
话说 float x='M'; printf("%f",x); 中的 float x 会被“升级”为 double 确实说不过去!
printf("%c",'M'); 中的参数在传递的时候会占 32 bits 用“升级”的说法勉强也说得过去,因为本质说在C语言看来,char 也是整数(只不过只有8-bits 就是了)。不过更根本的原因是计算机体系结构中,堆栈通常是按机器字对齐的。