给我的问题,要求以下代码的输出:
#include <stdio.h>
int main(){
printf(5+"test_Quiz");
return 0;
}
正确的答案/输出是:
测验
我不明白这个输出背后的原因,如何将整数添加到字符串中?即使我可以,那为什么只打印“测验”?
我不知道在什么基础上可以操作两种不同的数据类型。
我预计会出现错误。
它不会将它们打印在一起,字符串格式说明符之前的整数只是告诉
printf()
要跳过格式字符串的多少个字符:
这给出了相同的结果:
printf(5 + 10 - 10 + "test_Quiz");
但看起来编译器从格式字符串中删除了 od 个字符,因为对 printf 的调用是使用已删除的格式字符串进行的:
__printf (format=0x555555556009 "Quiz") at ./stdio-common/printf.c:2