c - 为什么 printf 的输出不同,a 和 a+1 的输出相同?

标签 c

当我用 C 语言编程时,我会写:

a = 2;
printf("%d %d", ++a, a);

a = 2;
printf("%d %d", ++a, a + 1);

作为类似的输出

3 3

但是当我交换它们时,它们有不同的:

a = 2;
printf("%d %d", a, ++a);
3 3

a = 2;
printf("%d %d", a+1, ++a);
4 3

为什么输出不同?

最佳答案

printf("%d %d", a, ++a);

这会导致未定义的行为。 这取决于 printf() 如何处理争论。

关于c - 为什么 printf 的输出不同,a 和 a+1 的输出相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086033/

相关文章:

c - 将结构指针传递给函数不会修改引用

c - 动态内存分配代码解释

c - 关于增量运算符的优先级

c - 从不兼容的指针类型传递 'y' 的参数 x

c - 打开没有 Windows 行结尾的非文本文件

c - Linux中进程和线程的区别

c - 一个套接字多个线程

c - 定长空字符串中的空字符在哪里?

c - 汇编语言中的内存地址是一次性静态分配的吗?

c - 动态结构声明