友情提示:以下文章僅為娛樂性質(zhì),請(qǐng)勿嚴(yán)肅對(duì)待。
哎呀,大家好啊!小編今天要來和大家聊聊一個(gè)小玩意兒——C語言庫函數(shù)中的gets()。
先不說它干啥用的,先說說它的名字吧。怎么看著這個(gè)名字就讓人產(chǎn)生了一股搞笑的感覺呢?是不是感覺這名字聽起來有點(diǎn)萌,有點(diǎn)傻,還有點(diǎn)可愛呢?
不過話又說回來了,這個(gè)gets()其實(shí)是縮寫,全稱是get string啦。它的作用就是來讀取一個(gè)字符串。那么問題又來了,它可是C語言標(biāo)準(zhǔn)庫中的函數(shù),那就意味著,只要你會(huì)用C語言,你就能夠嗨皮地用它咯!
話說回來,這個(gè)小玩意兒可真是用起來簡(jiǎn)單姐。它只要加一個(gè)參數(shù)就好啦,那個(gè)參數(shù)就是存儲(chǔ)你輸入字符串的char型數(shù)組。當(dāng)你調(diào)用這個(gè)函數(shù)之后,它就會(huì)堵著,讓你去輸入字符串,只要輸入完了,它就會(huì)返回并且把字符串存儲(chǔ)在那個(gè)數(shù)組里面。是不是很方便呢?
那么好玩的事情出現(xiàn)了,它為啥會(huì)堵住呢?沒錯(cuò),就是因?yàn)樗且粋€(gè)阻塞輸入函數(shù)。有些同學(xué)可能不太明白,那我就給大家科普一下吧。
所謂阻塞,就是當(dāng)一個(gè)進(jìn)程調(diào)用了一個(gè)阻塞函數(shù)之后,這個(gè)函數(shù)會(huì)堵?。ㄊ裁匆馑迹烤褪橇鞒桃谶@里等著,什么都干不了),而進(jìn)程會(huì)被掛起。直到這個(gè)函數(shù)運(yùn)行完畢之后,才會(huì)被喚醒,繼續(xù)往下執(zhí)行。別擔(dān)心,這個(gè)阻塞時(shí)間不會(huì)太長(zhǎng),只是等待輸入的一瞬間而已。
作為一個(gè)阻塞函數(shù),gets()也有引人犯困的弊端呢。想象一下,如果我們輸入的字符超出了緩沖區(qū)的大小,那么就會(huì)發(fā)生什么呢?雖然通常情況下這個(gè)函數(shù)會(huì)很快運(yùn)行完畢,但有時(shí)候它確實(shí)有可能在運(yùn)行的過程中遇到麻煩,造成“溢出”這個(gè)世紀(jì)難題??!這也是為什么現(xiàn)在C語言標(biāo)準(zhǔn)不建議使用gets(),而是推薦使用更安全的fgets()。看來,我們還要再多學(xué)一手啊!
好了,小編的科普時(shí)間已經(jīng)到了,各位可愛的讀者們有沒有心癢癢想要試試呢?趕快去試試吧,相信你們都能輕松駕馭它的! yinyiprinting.cn 寧波海美seo網(wǎng)絡(luò)優(yōu)化公司 是網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站優(yōu)化,企業(yè)關(guān)鍵詞排名,網(wǎng)絡(luò)營(yíng)銷知識(shí)和開發(fā)愛好者的一站式目的地,提供豐富的信息、資源和工具來幫助用戶創(chuàng)建令人驚嘆的實(shí)用網(wǎng)站。 該平臺(tái)致力于提供實(shí)用、相關(guān)和最新的內(nèi)容,這使其成為初學(xué)者和經(jīng)驗(yàn)豐富的專業(yè)人士的寶貴資源。
聲明本文內(nèi)容來自網(wǎng)絡(luò),若涉及侵權(quán),請(qǐng)聯(lián)系我們刪除! 投稿需知:請(qǐng)以word形式發(fā)送至郵箱[email protected]
優(yōu)化越來越難了