c - printf 语句在下面的代码中是如何工作的?

标签 c

void main()
{
printf("Adi%d"+2,3);
}

输出= i3

此 printf 语句有效,但该语句是如何工作的?

最佳答案

printf("Adi%d"+2,3);

"Adi%d" - 被解释为存储字符串文字 "Adi%d" 的内存地址的开始。当你给它加上 2 时,它就变成了存储字符串 "i%d" 的内存地址。所以基本上你传递给 printf 字符串:"i%d"。然后 %dprintf 开始发挥作用,将 %d 替换为 3,因此输出 i3

关于c - printf 语句在下面的代码中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39384001/

相关文章:

c++ - int ** 与 int [ROWS][COLS]

c - 服务器在客户端启动后如何通过 'C'中的套接字向服务器发送消息?

c - 使用 AVR Controller 的 LED 矩阵

c++ - 代码 : How to address dynamic Variables?

c - 如何使用来自 bool 语句的 true 或 false 数据?

c - malloc 和 realloc 数组给出意外输出

c++ - 在 Windows 上的 Qt Creator 中编译 libmodbus 会引发 undefined reference to '_imp_....' 错误

c++ - 如何仅使用 math.h 将字符串转换为 double

c - 堆栈实现中的 EXC_BAD_ACCESS

c - 逐行阅读时用逗号分割单词。 C