C输出题

标签 c

<分区>

Possible Duplicate:
C output question…

为什么它的o/p是%%??

int main(void)
{
  printf("%%%\n");
  return 0;
}

而下面的程序 o/p 是 %?

int main(void)
{
  printf("%%%");
  return 0;
}

你能告诉我到底有什么区别吗??

最佳答案

这是未定义的行为。 C99 的第 7.19.6.1/9 节指出:

If a conversion specification is invalid, the behavior is undefined.

并且前面的部分都不允许使用空格的转换说明符。它们仅限于集合 diouxXfFeEgGaAcsPn% 中的字符。

关于C输出题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5551810/

相关文章:

c++ - 我可以在 VS2008 的 C 代码中使用 C++ vector 吗

c - Linux 内核 I/O 调度中的请求队列

编译时间恶意软件可能吗?

c - 为什么 fread() 在 Msys/MinGw 下不能工作(跳过字节)?

c - 线程要处理

c - 指向字符串的指针数组 - C

c - 杀死使用clone()创建的子进程

c - 有关 C 中 `({});` 的更多信息?

c - 将 XOR 作为宏实现,但未按预期工作

c - AVX2 1x mm256i 32 位到 2x mm256i 64 位