关于C语言的这句话怎么理解 ?

"C语言本身并不提供数据输入输出语句,有关输入输出操作都是由函数的调用实现的"

“函数的调用” ???? 这些函数不就是c语言写的吗 ?
比如 printf() 不就是C语言的语句吗 ?

阅读 1.7k
4 个回答
新手上路,请多包涵

C语言是一系列标准(语法)集合,包括函数、变量和语句等,用于将人能看懂的字符转成机器码的。

printf()等函数符合C语言标准,但不是C语言本身,实际是其标准库的一部分。

这里是说没有专门用于输入输出的“语句”。

函数调用也是最终也是形成一个语句,但是这个语句是函数调用语句,而不是输入输出语句。

=========================

有些语言有专门的输入/输出语句,比如:

python2 的 print。 (注意它的写法跟函数调用是不同的。python3 已经没有这个语句了,print 变成了一个函数)

QBasic 的 INPUT statementPRINT statement

新手上路,请多包涵

确实,C语言并不提供直接的数据输入输出语句,但是它提供了标准库stdio.h,该库中包含了一系列用于数据输入输出的函数。其中,最常用的是:

  • scanf:从标准输入设备(通常是键盘)读取输入数据。
  • printf:将数据输出到标准输出设备(通常是屏幕)上。
  • fgets:从指定的流中读取一行数据,并存储在字符数组中。
  • fputs:将指定的字符串输出到指定的流中。

此外,还有很多其他的输入输出函数,如 gets、puts、fscanf、fprintf、getc、putc 等等,根据需要选择不同的函数实现输入输出操作。

这里所说的是C语言自带的关键字,简单来说,就是不需要#include任何头文件就能写出来的语句,诸如if,else,while等关键字,就是C语言自带的。

而printf和scanf这些输入输出函数,则是C语言的stdio.h库所提供的库函数。

但是,个人认为这样说C语言自带有点过于缩小范围了,理论上只要是C语言支持的所有库函数,都应该作为C语言的一员

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题