Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
#include<stdio.h> int main() { int a=3; printf("%d"+1,a); return 0; }
为什么这个程序的输出是“d”?如果这个 int 说明符 (%d) 被 float (%f) 替换,那么它将输出为"f"。
请解释一下这段代码...
"%d" + 1与 相同&"%d"[1],即指向字符串中第二个字符的指针。printf从那里开始将字符串解释为格式说明符,因此与 just 相同"d"(并且第二个参数被简单地忽略)。
"%d" + 1
&"%d"[1]
printf
"d"