简单的C语言输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 14:40:16
#include<stdio.h>
void main()
{
int k=12;
char ch='a';
printf("%x %o",ch,ch,k);
printf("%%d\n",k);
}

第二个输出结果为什么是%d,而不是%12?
请详细解答,谢谢!

输出格式控制的匹配顺序是从左向右匹配,
所以%%d是先匹配%%,%%的作用是输出一个'%',
后面的d被编译器视为要求输出一个'd',
所以输出%d

如果想输出%12,需要写为%%%d,
这样的话,从左向右匹配出两个输出格式控制:%%和%d,
所以输出%12

%d是整型输出:
请查看:
http://baike.baidu.com/view/410546.html?wtp=tt

想要输出一个%,那么代码就得写成%%,所以你想输出%12的话,应该这么写:
printf("%%%d\n",k);