#include<stdio.h>
#include<stdlib.h>
int main( int argc ,char** argv) {
int bugs = 100;
char nul_byte='\0';
char care_percentage = bugs * nul_byte;
printf("Which means you should care %s%%.\n",care_percentage);// 1->prints (null)
printf("Which means you should care %d%%.\n",care_percentage);// 2->prints 0
printf("Which means you should care %c%%.\n",care_percentage);// 3->prints
return 0;
}
问题是在最后三个语句 1,2 和 3 中真正发生了什么。在机器级别内部发生了什么。%s 如何在打印时将其设为 (null),%d 如何将其设为 0,而 %c 如何将其设为空。
有人可以在机器层面解释这些吗?