printf()函数
众所周知,printf()函数的作用是用来输出一个字符串,那我觉得我们有必要知道什么叫做字符串常量,什么叫做字符常量?
字符常量:
通俗理解就是单个字符,是一对英文半角格式的单引号(’ ')括起来的字符,例如 ‘a’,‘b’,'c’等等,具体可参考ASCII对照表。(链接:(https://tool.oschina.net/commons?type=4))
(tip:一般定义字符型变量用char类型来定义,那么我们也知道char类型的变量范围是-128 ~ 127,我们可以从ASCII表中得知最大的字符所对应的最大ascii值是127,所以用char类型就可以存得下所有的字符)
字符串常量:
- 字符串常量是内存中一段连续的char空间,以’\0’(数字0)结尾。
- 字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
举个例子:例如我们设置了一个字符串变量ch:“ABC”,表面上看这个字符串常量中只有三个字符,但是实际在计算机内存中是四个字符,分别是’A’,‘B’,‘C’,’\0’。然后参考ASCII表可知,A对应的ASCII值为65,以此类推,B为66,C为67,\0为0。为了让大家理解清楚,如下图所示。这里也正好对应上面所说(字符串常量是内存中一段连续的char空间)
printf可以打印不同数据类型的变量,并且最终以字符串的形式输出。以最常用的打印int类型为例,一般printf使用格式如下所示:
int main()
{
int num = 20;
printf("%d\n",num);
system("pause");
return 0;
}
输出结果如下所示:
至于打印其他数据类型的变量,可参考如下:
例如我们想要打印字符型的变量,此时定义了一个char型变量ch,则只需要将%d修改成%c即可。其他同理。printf()格式如下:
printf("ch=%c\n",ch);
putchar()函数
由上可知,printf函数是输出一个字符串,那putchar的作用就是输出一个字符。在本文刚开始也已经讲了字符串和字符的区别。
如上图所示,正常输出了一个字符‘a’,细心的会发现并没有换行,所以putchar函数输出后不会自动换行。
scanf()函数
为了让大家更清楚的认识该函数,特意画了一张图供大家观看。
说明:
同printf函数一样,scanf函数也有固定的书写格式,同样,以整型输入为例,固定格式为
scanf("%d",&变量名);//其中&为取地址符,不可缺少,其他数据类型同理,这里不再赘述
先讲下scanf函数的作用:通过%转义的方式可以得到用户通过标准输入设备输入的数据。可能这句话有点晦涩难懂。别急,我们可以借着图分析理解。
首先,我们通过键盘依次输入123,并且回车(回车用c语言可以表示成\n)。那么我们需要知道在系统中,有个进程文件也就是图中所示的标准输入文件,可以用来存储我们通过键盘输入的信息,所以此时文件中的信息为123\n。那么此时我们定义了一个整形变量num,并且这个变量已经保存在计算机内存中,那么scanf函数此时就发挥作用了,依次读取标准文件中的已经保存的数据,由于我们设置读取的格式是%d,所以0-9的字符都要,直到遇到\n结束。所以按照上述推理,正常输出结果应该是123。我们可以试试。程序如下:
#include "stdio.h"
int main()
{
int num = 0;
scanf_s("%d", &num);
printf("%d\n", num);//核实结果是否正确
system("pause");
return 0;
}
输出结果:
getchar()函数
同putchar函数作用相反,getchar函数的作用就是从标准输入设备读取一个字符,而不是字符串。
代码如下:
#include "stdio.h"
int main()
{
char ch = 0;
scanf("%c", &ch);
ch = getchar();
return 0;
}
结束语
如果觉得这篇文章还不错的话,记得点赞 ,支持下!!