这是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