這是C代碼:爲什麼「printf(」%d「,'0 /');」是12335?
int main(int argc, const char *argv[])
{
printf("%d", '0/');
return 0;
}
輸出是12335!然後我嘗試用'00'和'000'代替'0',輸出變爲12336和3158064,而12336 = 48 *(1 + 2^8),3158064 = 48 *(1 + 2^8 + 2^16)。但是,我仍然不知道爲什麼。當'0 /'轉換爲輸出整數時會發生什麼?
PS:我的電腦是MBP,操作系統是OS X 10.9.5(13F34)。編譯器是Apple LLVM 6.0。
你是不是指'\ 0'? – matsjoyce 2014-09-27 20:36:20
即使是一個基本問題,如果OP增加了一件事情,我會給出一個幾乎完美形式的第一個問題的+1:預期的輸出。考慮未來的問題。 – chux 2014-09-27 23:34:20