输出控制符
到底什么是“输出控制符”,什么是“非输出控制符”?
很简单,凡是以%
开头的基本上都是输出控制符。
为什么需要输出控制符?
因为程序中虽然写的是 i=10,但是在内存中并不是将 10 这个十进制数存放进去,而是将 10 的二进制代码存放进去了。计算机只能执行二进制 0、1 代码,而 0、1 代码本身并没有什么实际的含义,它可以表示任何类型的数据。所以输出的时候要强调是以哪种进制形式输出。所以就必须要有“输出控制符”,以告诉操作系统应该怎样解读二进制数据。
常见的输出控制符
%x、%X、%#x、%#X 的区别
# include <stdio.h>
int main(void)
{
int i = 47;
printf("%x\n", i); // 2f
printf("%X\n", i); // 2F
printf("%#x\n", i); // 0x2f
printf("%#X\n", i); // 0x2F
return 0;
}
printf 的格式有四种:
1) printf("字符串\n");
其中\n
表示换行的意思。它是一个转义字符。需要注意的是,printf 中的双引号和后面的分号必须是在英文输入法下。双引号内的字符串可以是英文,也可以是中文。
2) printf("输出控制符",输出参数);
将变量 i 以十进制输出。
# include <stdio.h>
int main(void)
{
int i = 10;
printf("%x\n", i); /*%x是输出控制符,x 表示十六进制,后面的 i 是输出参数*/
return 0;
}
3) printf("输出控制符1 输出控制符2…", 输出参数1, 输出参数2, …);
4) printf("输出控制符 非输出控制符",输出参数);
# include <stdio.h>
int main(void)
{
int i = 10;
int j = 3;
printf("%d %d\n", i, j);
return 0;
}
# include <stdio.h>
int main(void)
{
int i = 10;
int j = 3;
printf("i = %d, j = %d\n", i, j);
return 0;
}