C語(yǔ)言中的putchar函數(shù)示例
putchar函數(shù)介紹:
putchar函數(shù)函數(shù)幾乎是在整個(gè)C語(yǔ)言中最沒有知名度的,它常常被程序員冷漠地對(duì)待。至于為什么?原因很簡(jiǎn)單!因?yàn)樗墓δ芫椭皇菃螁屋敵鲆粋€(gè)字符。但為了讀者可以多積累函數(shù),我們還是決定講講這個(gè)函數(shù)。
搭建環(huán)境:
putchar函數(shù)的頭文件是標(biāo)準(zhǔn)輸入輸出頭文件(stdio.h),要想使用這個(gè)函數(shù)我們必須包含這個(gè)頭文件,在C語(yǔ)言中我們使用的是#include這個(gè)預(yù)處理來包含頭文件的。
#include<stdio.h>
因?yàn)镃語(yǔ)言是個(gè)函數(shù)式語(yǔ)言,它的程序入口是一個(gè)函數(shù)。所以包含好頭文件之后,我們需要自己手寫一個(gè)main函數(shù)這個(gè)程序的入口函數(shù),我們這個(gè)main函數(shù)的數(shù)據(jù)類型是整形(int型)。隨后函數(shù)是需要參數(shù)的,我們需要在main函數(shù)后的“()”內(nèi)編寫函數(shù)的形式參數(shù)(形參),但我們創(chuàng)建的這個(gè)函數(shù)沒有參數(shù),所以我們可以在main函數(shù)的參數(shù)內(nèi)寫上一個(gè)“void”關(guān)鍵字,表示我們這個(gè)函數(shù)不需要參數(shù),但我們也可以不在main函數(shù)里寫“void”關(guān)鍵字,它們的表達(dá)效果是一致的。我們可以使用這任意一種方法。函數(shù)要有函數(shù)體,我們之后寫一對(duì)“{}”表示函數(shù)的函數(shù)體,這樣一個(gè)函數(shù)的入口就已經(jīng)搭建完成了,這也是最基本的函數(shù)搭建。如下:
#include<stdio.h>
int main(void)
{
}另外一點(diǎn)函數(shù)是需要返回值的(除了void類型外),返回一個(gè)值由我們自己決定,這里我們默認(rèn)返回0。但在某一些編譯器,main方法的返回值是可選的。但嚴(yán)苛點(diǎn)來說我們一定要在main函數(shù)內(nèi)返回一個(gè)值,在C/C++中我們使用的是return這個(gè)語(yǔ)句來返回一個(gè)值。
?#include<stdio.h>
int main(void)
{
return 0;
}函數(shù)原型:
現(xiàn)在,我們就可以愉快地使用putchar函數(shù)了,我們先來看看putchar這個(gè)函數(shù)的參數(shù)原型,因?yàn)槲覀冎灰篮瘮?shù)的參數(shù)原型,才可以正確地傳入?yún)?shù),才能正確地使用函數(shù)。在VS2022中,我們可以直接將鼠標(biāo)光標(biāo)放在這個(gè)函數(shù)之上就可輕輕松松查看函數(shù)原型。

我們發(fā)現(xiàn)我們需要給putcahr函數(shù)傳入一個(gè)整形值,它會(huì)把這個(gè)整形轉(zhuǎn)換為字符型,隨后輸出到控制臺(tái)。我們還發(fā)現(xiàn)這個(gè)函數(shù)的數(shù)據(jù)類型是int_cdecl型,也就是說這個(gè)函數(shù)有一個(gè)返回值,其實(shí)這個(gè)返回值返回的是putchar參數(shù)轉(zhuǎn)換為整型的數(shù)值,我們先不管這個(gè)函數(shù)的數(shù)據(jù)類型,我們先來使用putchar函數(shù)輸出一個(gè)字符再說。
講解putchar函數(shù):
#include<stdio.h>
int main(void)
{
putchar(65);
return 0;
}我們?cè)趐utchar函數(shù)內(nèi)寫入一個(gè)整形值65,putcahr函數(shù)會(huì)自動(dòng)把65這個(gè)數(shù)值轉(zhuǎn)換為數(shù)值對(duì)應(yīng)的字符并輸出。它轉(zhuǎn)換為字符的編碼形式是ASCLL編碼(ASCLL字符集),如果您對(duì)ASCLL編碼不太了解,那么請(qǐng)看下圖:

我們?cè)囍业絧utchar參數(shù)內(nèi)的數(shù)值,并找到這個(gè)數(shù)值對(duì)應(yīng)的字符。我們不難發(fā)現(xiàn)這個(gè)字符是”A“,我們還發(fā)現(xiàn),ASCLL字符集里面包含了我們?cè)阪I盤上所有的字符,并且每個(gè)字符都有對(duì)應(yīng)的數(shù)值,每個(gè)數(shù)值都有對(duì)應(yīng)的字符,譬如66這個(gè)數(shù)值在ASCLL碼字符集對(duì)應(yīng)的字符是“B”,67在ASCLL碼字符集對(duì)應(yīng)的字符則是“C”。
我們來看看上列程序的輸出結(jié)果:
輸出結(jié)果:A
由此證明,我們的結(jié)論是正確的,putchar函數(shù)會(huì)在控制臺(tái)上輸出這個(gè)函數(shù)對(duì)應(yīng)的字符。
但您認(rèn)為C語(yǔ)言中的putchar函數(shù)就這么簡(jiǎn)單嗎?不不不!它也可以輸出參數(shù)是字符型的字符,我們來看看下面一則例子:
#include<stdio.h>
int main(void)
{
putchar('A');
return 0;
}在上文中我們也講過,putchar函數(shù)的參數(shù)原型里要求我們填寫的是一個(gè)整形,但其實(shí)字符型也是整形的一種,我們也可以在putchar的參數(shù)列表中填寫一個(gè)是字符型的參數(shù)。我們?cè)诨氐酱a中來,現(xiàn)在putchar函數(shù)的參數(shù)內(nèi)有一個(gè)字符,這個(gè)字符是”A“(在C語(yǔ)言中,字符以單引號(hào)所包裹)。我們直接可以執(zhí)行上面的代碼輸出結(jié)果與上文中是無(wú)異的,它的輸出結(jié)果也是字符“A”。
輸出結(jié)果:A
putchar的返回值:
接下來我們是時(shí)候該講解一下putchar函數(shù)的返回值了,我們?cè)囍褂靡粋€(gè)變量來接收一下putchar函數(shù)的返回值,并使用整形的形式輸出這個(gè)變量:
#include<stdio.h>
int main(void)
{
int sum = 0;
sum = putchar('A');
printf("%d",sum);
return 0;
}我們創(chuàng)建了一個(gè)整形變量叫“sum”,它的默認(rèn)值是0,之后使用putchar函數(shù)輸出一個(gè)字符并使用這個(gè)變量接收它的返回值。隨后使用printf函數(shù)以整形的形式輸出這個(gè)變量。我們一起看看這個(gè)程序的輸出結(jié)果:
輸出結(jié)果:A65
輸出結(jié)果的字符“A”是我們使用putchar函數(shù)輸出的,而后的65是接收putchar函數(shù)的返回值的變量所輸出的結(jié)果。我們不難看出這個(gè)sum的值是字符A的ASCLL碼值。所以putchar函數(shù)的返回值是參數(shù)的ASCLL碼值。
總結(jié):
我們學(xué)習(xí)了putchar函數(shù)的使用方法,我們知道了這個(gè)函數(shù)會(huì)把參數(shù)轉(zhuǎn)換為字符后輸出到控制臺(tái)上,并且我們還理解了putchar函數(shù)的返回值,它的返回值是將參數(shù)轉(zhuǎn)換數(shù)值,還有最重要的一點(diǎn),putchar函數(shù)的頭文件是標(biāo)準(zhǔn)輸入輸出頭文件(stdio.h),沒有了這個(gè)頭文件,我們就不可以正常使用putchar函數(shù)。
到此這篇關(guān)于C語(yǔ)言中的putchar函數(shù)的文章就介紹到這了,更多相關(guān)C語(yǔ)言putchar函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
優(yōu)先隊(duì)列(priority_queue)的C語(yǔ)言實(shí)現(xiàn)代碼
本文簡(jiǎn)要介紹一種基于數(shù)組二叉堆實(shí)現(xiàn)的優(yōu)先隊(duì)列,定義的數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)的函數(shù)接口說明如下2013-10-10
Qt實(shí)現(xiàn)手動(dòng)切換多種布局的完美方案
通過點(diǎn)擊程序界面上不同的布局按鈕,使主工作區(qū)呈現(xiàn)出不同的頁(yè)面布局,多個(gè)布局之間可以通過點(diǎn)擊不同布局按鈕切換,支持的最多的窗口為9個(gè),不同布局下窗口數(shù)隨之變化,這篇文章主要介紹了Qt實(shí)現(xiàn)手動(dòng)切換多種布局的完美方案,需要的朋友可以參考下2024-07-07
C++多字節(jié)字符與寬字節(jié)字符相互轉(zhuǎn)換
最近在C++編程中經(jīng)常遇到需要多字節(jié)字符與寬字節(jié)字符相互轉(zhuǎn)換的問題,自己寫了一個(gè)類來封裝wchar_t與char類型間的轉(zhuǎn)換2012-11-11
C++實(shí)現(xiàn)校園導(dǎo)游系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)校園導(dǎo)游系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C++詳細(xì)講解繼承與虛繼承實(shí)現(xiàn)
這篇文章主要介紹了Java中的繼承詳情,繼承是面向?qū)ο笕筇卣髦?,可以使得子類具有父類的屬性和方法,還可以在子類中重新定義,以及追加屬性和方法,下文介紹需要的朋友可以參考下2022-04-04
深入解析C語(yǔ)言中常數(shù)的數(shù)據(jù)類型
C語(yǔ)言中常數(shù)的數(shù)據(jù)類型,需要的朋友可以過來參考下。希望對(duì)大家有所幫助2013-10-10
Qt界面中滑動(dòng)條的實(shí)現(xiàn)方式
這篇文章主要介紹了Qt界面中滑動(dòng)條的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

