#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;
}
問題は、最後の 3 つのステートメント 1、2、および 3 で実際に何が起こるかです。マシン レベルで内部的に何が起こるかです。印刷中に %s が (null) と見なされ、%d が 0 と見なされ、%c が何もないと見なされる方法。
誰かがマシンレベルの深さでこれらを説明できますか?