如何在 printf() 中使用“+”运算符将整数和字符串数据类型一起打印? [重复]

问题描述 投票:0回答:1

给我的问题,要求以下代码的输出:

#include <stdio.h>

int main(){
    printf(5+"test_Quiz");
    return 0;
}

正确的答案/输出是:

测验

我不明白这个输出背后的原因,如何将整数添加到字符串中?即使我可以,那为什么只打印“测验”?

我不知道在什么基础上可以操作两种不同的数据类型。

我预计会出现错误。

c printf
1个回答
-1
投票

它不会将它们打印在一起,字符串格式说明符之前的整数只是告诉

printf()
要跳过格式字符串的多少个字符:

这给出了相同的结果:

printf(5 + 10 - 10 +  "test_Quiz");

但看起来编译器从格式字符串中删除了 od 个字符,因为对 printf 的调用是使用已删除的格式字符串进行的:

__printf (format=0x555555556009 "Quiz") at ./stdio-common/printf.c:2
© www.soinside.com 2019 - 2024. All rights reserved.