putchar()的功能是啥-LMLPHP

本教程操作环境:windows7系统、c99版本、Dell G3电脑。

putchar()是c语言中的一个函数,功能是向终端输出一个字符。

putchar()函数包含在C 标准库 <stdio.h>中。其输出可以是一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是用char定义好的一个字符型变量。

语法结构为:

int putchar(int char)
登录后复制

可以把参数char指定的字符(一个无符号字符)写入到标准输出stdout中。

参数:

  • char -- 这是要被写入的字符。该字符以其对应的 int 值进行传递。

返回值

  • 该函数以无符号 char 强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。

说明

  • 该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。例如:“putchar('#')”输出字符“#”。

putchar()函数使用

putchar()函数难道就只能输出char型的数据么?带着这样的疑问,在环境上进行了验证,验证结果还蛮有意思,共享一下。

当我们定义一个变量a,并给a赋予0~255的值,很显然没有问题,如代码:

#include<stdio.h>void main( )
{     int a = 0;  //将0值赋给变量a
     int b = 255;  //将255值赋给变量b
     putchar(a) ; //输出变量a的值
     putchar(b) ; //输出变量b的值
     putchar('\n') ;
}
登录后复制

结果显然没有问题。

但如果现在赋值为负数呢?如代码:

#include<stdio.h>void main( )
{     int a = -4646;  //将-4646值赋给变量a
     int b = -2;  //将-2值赋给变量b
     putchar(a) ; //输出变量a的值
     putchar('\n') ;     putchar(b) ; //输出变量b的值
     putchar('\n') ;
}
登录后复制

发现编译正常,也能输出结果,只是输出的结果都是空,我也不太清楚是什么原因?

还有一种情况是,赋的值大于255时,会怎样?代码如下:

#include<stdio.h>void main( )
{     int a = 592;  //将592值赋给变量a
     int b = 267;  //将267值赋给变量b
     putchar(a) ; //输出变量a的值
     putchar('\n') ;     putchar(b) ; //输出变量b的值
     putchar('\n') ;
}
登录后复制

运行结果为:

putchar()的功能是啥-LMLPHP

从结果中可以发现,赋的值被截断成char型数据了,也就是说只取了低八位的数据。

从这些示例来说,putchar()这个函数不会检查要输出的字符的真正范围。

结论:

在使用的时候需要注意,输出变量的范围是不是一个字符的范围内,只有在一个字符的范围内才能正确输出,不然肯定会出错。

推荐:《c语言教程

以上就是putchar()的功能是啥的详细内容,更多请关注Work网其它相关文章!

09-02 21:33