上一篇講解了printf的一些高級(jí)用法,不知道大家有沒有學(xué)到東西,相應(yīng)的,這篇該為大家介紹對(duì)應(yīng)的輸入函數(shù)scanf的一些功能了!
scanf作為C語言標(biāo)準(zhǔn)函數(shù)庫中的格式化輸入函數(shù),大家對(duì)它常規(guī)的使用應(yīng)該都很明白,
接收控制的格式除了常用的%d,%c,%f等以外, 我們今天重點(diǎn)講解*在scanf中的用法和scanf的返……繼續(xù)閱讀 »
CTO
8年前 (2017-02-16) 53100瀏覽 12評(píng)論
240個(gè)贊
三個(gè)單字符接受函數(shù),今天給為大家詳細(xì)區(qū)分!
第一個(gè),getchar函數(shù),是C語言標(biāo)準(zhǔn)庫中的函數(shù),在頭文件stdio中,可以接受用戶輸入的一個(gè)字符,回車結(jié)束,明文顯示。聲明和示例如下:
注意:第一行是我輸入的,第二行是printf輸出的!
第二個(gè),getch函數(shù),也是接收鍵盤……繼續(xù)閱讀 »
CTO
8年前 (2017-02-07) 35684瀏覽 2評(píng)論
217個(gè)贊
今天這篇,想給大家把printf拿出來再詳細(xì)講一講,因?yàn)椴簧偻瑢W(xué)反映只會(huì)用,但一些參數(shù)、返回值什么的還不了解,所以今天總結(jié)一二,給大家總結(jié)和梳理一下,算是拋磚引玉,能給大家打開大門,下面開始。
首先,以下四種printf的用法想必大家都應(yīng)該很熟悉。
除此以外,各種\n、\t 、\r、\b等轉(zhuǎn)義字符不再講解,大家可自行查表。
我們……繼續(xù)閱讀 »
CTO
8年前 (2017-02-04) 55643瀏覽 18評(píng)論
471個(gè)贊
通過上一篇的講解,相信大家已經(jīng)明白直接的return數(shù)組的問題以及原因了,今天我們將詳細(xì)為大家講解在函數(shù)中返回?cái)?shù)組的常見辦法。
此類問題,應(yīng)用場(chǎng)景往往為了解決函數(shù)間相互通信,比如某個(gè)函數(shù)內(nèi)處理的完的結(jié)果數(shù)據(jù)需要交接給另一個(gè)函數(shù)的情況,那么一般來說,總結(jié)有以下三種:
直接使用全局變量:這種方法最方便,但此方法打破了函數(shù)間的通信及封裝的思想,所以……繼續(xù)閱讀 »
CTO
8年前 (2017-01-31) 29202瀏覽 3評(píng)論
106個(gè)贊
最近看到一些同學(xué)問題,有提到說:如何在一個(gè)函數(shù)中返回?cái)?shù)組呢?
能否直接在自定義 函數(shù)中,寫成char *類型返回值,直接返回呢?,代碼如下:
直接返回str數(shù)組名(注意不需要加&,還有好多同學(xué)犯這個(gè)錯(cuò))
但事實(shí)上,運(yùn)行結(jié)果并非正常,我們嘗試在調(diào)用函數(shù)中輸出,可以看到結(jié)果并非是原來內(nèi)容(當(dāng)然你的電腦輸出可能還……繼續(xù)閱讀 »
CTO
8年前 (2017-01-28) 43806瀏覽 9評(píng)論
180個(gè)贊
有同學(xué)寫過或者想寫這樣的宏定義嗎?
求兩個(gè)或幾個(gè)數(shù)的乘積:?? #define SQU(x) x*x
我們正常使用沒有問題:
但如果這樣寫呢?
哎呀,竟然不是100了,難道SQU(10)和SQU(5+5)不等價(jià)嗎?5+5不是10嗎?
的確,這里SQU(10)和SQU(5+5)的確不等價(jià)……繼續(xù)閱讀 »
CTO
8年前 (2017-01-22) 21192瀏覽 3評(píng)論
125個(gè)贊
大家在學(xué)習(xí)C語言過程中,可能會(huì)見到過一些這樣的題,就是表達(dá)式短路,表達(dá)式短路主要體現(xiàn)在C語言中邏輯運(yùn)算符&&和||。今天將對(duì)表達(dá)式短路的做逆向分析,來深入理解它。
首先利用表達(dá)式短路,我們可以寫一個(gè)很經(jīng)典的累加求和的函數(shù),代碼如下:
功能很簡(jiǎn)單,就是求1+2+…+99+100的數(shù)字和的一個(gè)程序,但用遞歸寫了出來,……繼續(xù)閱讀 »
CTO
8年前 (2017-01-12) 11580瀏覽 1評(píng)論
28個(gè)贊
今天我們來逆向分析C語言中++和—運(yùn)算符前綴和后綴的區(qū)別,提到這里,相信有不少同學(xué)也早有過疑問,如前綴++表示”先加再用”,后綴++表示”先用再加”,今天經(jīng)過我們的逆向分析,相信大家就會(huì)更加理解這其中的意義!
我們這里以++為例,分別進(jìn)行逆向分析實(shí)驗(yàn),觀察匯編代碼,先看一個(gè)簡(jiǎn)單的程序:
……繼續(xù)閱讀 »
CTO
8年前 (2017-01-06) 17343瀏覽 0評(píng)論
31個(gè)贊
這里首先說明一點(diǎn):char *p和a[] 不是一回事,詳情將后續(xù)更新。
那么兩者最大的區(qū)別是什么呢?答:一個(gè)存了,一個(gè)沒存!
為啥?先說第一個(gè),第一個(gè)其實(shí)就是一個(gè)字符數(shù)組的定義連同初始化的過程,只不過長(zhǎng)度缺省,這種情況編譯器是允許的,其長(zhǎng)度為后面初始化字符串的長(zhǎng)度+1(因?yàn)椤甛0’)。這個(gè)相信大家學(xué)過C語言看過教材的都應(yīng)該知道。我們可以試圖打印……繼續(xù)閱讀 »
CTO
8年前 (2017-01-04) 9708瀏覽 0評(píng)論
19個(gè)贊
char *p1,p2為啥不對(duì)?
相信不少同學(xué)在學(xué)完指針后嘗試定義兩個(gè)指針會(huì)這樣寫,并且編譯沒有錯(cuò)誤,使用P1也沒有問題,但嘗試使用P2的時(shí)候可能會(huì)發(fā)現(xiàn)不對(duì)勁!
為什么呢,p2可能僅僅是個(gè)char類型的變量,并非是一個(gè)指針!
為何是這樣,相信不少這么定義并且覺得正確的同學(xué)會(huì)有這樣的理解,那就是:char *屬于類型,……繼續(xù)閱讀 »
CTO
8年前 (2017-01-02) 8900瀏覽 0評(píng)論
50個(gè)贊