C/C++培训
达内IT学院
400-996-5531
C语言程序开发中,很多程序员喜欢使用 printf() 函数打印一些日志,便于观察和调整程序,因此 printf() 函数是一个使用相当频繁的函数。
一般来说,所谓日志,其实就是一些字符串,printf() 函数为了方便的将其他(字符串以外)类型的参数整合入字符串,提供了一些占位符,例如 %s, %d, %f, %p 等。
一个有趣的问题是,%s可以填充字符串(string),%f可以填充浮点数(float),%p则可以填充一个指针(pointer),这些占位符分别是用对应英文单词的首字母表示的,因此比较好记。那么常用于填充整数的%d为什么不按照 integer 的首字母 %i 呢?
printf() 函数的占位符
事实上,%d 中的 d 并不表示 integer,而是表示decimal(10进制)。类似的%x 常用于打印 16 进制整数(hexadecimal), %o 常用于打印 8 进制整数(octal)。C语言程序开发中的整数显然可以是任意进制的。
调用 printf() 函数时,若是希望打印一个一个整数,完全可以使用%i作为占位符,下面是一段C语言代码示例:
#include <stdio.h>
int main()
{
printf("%i\n", 5);
return 0;
}
编译并执行这段C语言代码,得到的的输出是符合预期的:
# gcc t.c
# ./a.out
5
在很多C语言程序中,使用 printf() 打印整数使用的占位符更多是%d,因为它更加具体,表明希望将整数以更符合人类习惯的 10 进制输出。
类似的,调用 scanf() 函数读取用户输入的整数时,也可以同时使用 %i 和 %d,%i 占位符意味着用户输入的整数将被解析为任意进制的整数(八进制、十六进制、十进制等),而 %d 的意义更加明确——将整数解析为十进制整数。
总结反思
很多C语言初学者在刚刚接触 printf() 函数的占位符时,常觉得这些占位符很难记忆,其实它们大都是对应数据类型英文单词的首字母。由于C语言程序中的整数常常有不同进制之分,因此更常使用的整数占位符不是integer的首字母 %i,而是具有更加明确含义的,也即十进制整数的 %d,弄清这一点,占位符就很好记了。
当你还在担心能否就业时,达内学员提前被企业录取;当你转辗于各大招聘会时,达内学员收到了高薪offer;当你在各大招聘网站投递简历时,达内学员中有人一毕业进入五百强名企。所以选择很重要。找C++培训班,选达内就对了。
版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved