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