@interface ClassA : NSObject
- (void) doSomeThingA;
+ (void) doSomeThingB;
@end
ClassA* a = [ClassA init];
[a doSomeThingA];
[ClassA doSomeThingB];
其中繼承過來的init 定義的doSomeThingB是靜態(tài)方法, 用類名來調(diào)用,一般用來初始化實(shí)例,
doSomeThingA是動(dòng)態(tài)方法, 需要用實(shí)例a來調(diào)用。
靜態(tài)方法相當(dāng)于java的static方法 或c語言的所有方法, 在編譯后就能得到引用
動(dòng)態(tài)方法相當(dāng)于java的成員方法,只有實(shí)例才有方法的引用
一、C語言的結(jié)構(gòu) 1、程序的構(gòu)成,MAIN函數(shù)和其他函數(shù) 2、頭文件,數(shù)據(jù)說明,函數(shù)的開始和結(jié)束標(biāo)志 3、源程序的書寫格式 4、C語言的風(fēng)格 二、數(shù)據(jù)類型及其運(yùn)算 1、C的數(shù)據(jù)類型(基本類型,構(gòu)造類型,指針類型,空類型)及其定義方法。
2、C運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性。 3、不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算。
4、C表達(dá)式類型(賦值表達(dá)式,算術(shù)表達(dá)式,關(guān)系表達(dá)式,邏輯表達(dá)式,條件表達(dá)式,逗號(hào)表達(dá)式)和求值規(guī)則。 三、基本語句 1、表達(dá)式語句,空語句,復(fù)合語句。
2、數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用。 3、復(fù)合語句。
4、GOTO語句和語句標(biāo)號(hào)的使用。 四、選擇結(jié)構(gòu)程序設(shè)計(jì) 1、用IF語句實(shí)現(xiàn)選擇結(jié)構(gòu)。
2、用SUITCH語句實(shí)現(xiàn)多分枝選擇結(jié)構(gòu)。 3、選擇結(jié)構(gòu)的嵌套。
五、循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 1、FOR循環(huán)結(jié)構(gòu)。 2、WHILE和DO WHILE循環(huán)結(jié)構(gòu)。
3、CONTINUE語句和BREAK語句。 4、循環(huán)的嵌套。
五、循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 1、FOR循環(huán)結(jié)構(gòu)。 2、WHILE和DO WHILE循環(huán)結(jié)構(gòu)。
3、CONTINUE語句和BREAK語句。 4、循環(huán)的嵌套。
六、數(shù)組的定義和引用 1、一維數(shù)組和多維數(shù)組的定義、初始化和引用。 2、字符串與字符數(shù)組。
七、函數(shù) 1、庫函數(shù)的正確調(diào)用。 2、函數(shù)的定義方法。
3、函數(shù)的類型和返回值。 4、形式參數(shù)和實(shí)在參數(shù),參數(shù)值的傳遞。
5、函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。 6、局部變量和全局變量。
7、變量的存儲(chǔ)類別(自動(dòng),靜態(tài),寄存器,外部),變量的作用域和生存期。 8、內(nèi)部函數(shù)與外部函數(shù) 八、編譯預(yù)處理 1、宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義。
2、"文件包含"處理 九、指針 1、指針與指針變量的概念,指針與地址運(yùn)算符。 2、變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針以及指向變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針變量。
通過指針引用以上各類型數(shù)據(jù)。 3、用指針作函數(shù)參數(shù)。
4、返回指針值的指針函數(shù)。 5、指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)。
十、結(jié)構(gòu)體(即"結(jié)構(gòu)" )與共用體(即" 聯(lián)合" ) 1、結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法。 2、用指針和結(jié)構(gòu)體構(gòu)成鏈表,單向鏈表的建立、輸出、刪除與插入。
十一、位運(yùn)算 1、位運(yùn)算符的含義及使用。 2、簡單的位運(yùn)算。
十二、文件操作 只要求緩沖文件系統(tǒng)(即高級(jí)磁盤I/O系統(tǒng)),對(duì)非標(biāo)準(zhǔn)緩沖文件系統(tǒng)(即低級(jí)磁盤I/O系統(tǒng))不要求。 1、文件類型指針(FILE類型指針)。
2、文件的打開與關(guān)閉(FOPEN,FCLOSE)。 3、文件的讀寫(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINT,FSCANF函數(shù)),文件的定位(REWIND,FSEEK函數(shù))。
關(guān)于C語言需要的基礎(chǔ)知識(shí)并不多,但是會(huì)一點(diǎn)英語就會(huì)學(xué)的很好。C語言只是一種工具,看你要用它做什么事情了。
如果你想考二級(jí)而且現(xiàn)在是零基礎(chǔ),希望你能找一下培訓(xùn)班,一個(gè)月兩個(gè)月就能學(xué)通。如果有其他語言的基礎(chǔ)就更好了,買一本C語言的書,千萬別買一些古怪的出版社出的書,推薦英文教材或翻譯的教材,比如The C Program Language 就很不錯(cuò),對(duì)照著上面一頁一頁看,半個(gè)月應(yīng)該就能簡單編程。然后就是做習(xí)題,二級(jí)開始幾道題是考公共基礎(chǔ)知識(shí)的,是全靠背的,馬虎不得,可是直接百度或Google“公共基礎(chǔ)知識(shí)+二級(jí)”會(huì)找到很多資料,找考題也如此“歷年C二級(jí)考題”,只做真題,不做模擬。因?yàn)槊磕瓿龅念}都差不多,考題做多了考試的中心思想也找到了。
如果你是要做底層硬件開發(fā),關(guān)于C語言方面的東西需要注意的到是不太多,主要針對(duì)某款MCU的初始化和算法的編寫。有了上面的二級(jí)基礎(chǔ)是很容易做到的。
學(xué)習(xí)哪門語言都需要不斷的練習(xí),如果還有什么問題可以再聯(lián)系我。
1.scanf函數(shù)的一般形式scanf(格式控制,地址表列)int scanf(char *format[,argument,。
]);“格式控制”的含義同printf函數(shù);“地址表列”是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串首地址。scanf()函數(shù)返回成功賦值的數(shù)據(jù)項(xiàng)數(shù),出錯(cuò)時(shí)則返回EOF。
例題 scanf函數(shù)輸入數(shù)據(jù)。#includevoid main(){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c);}格式字符 說明%a 讀入一個(gè)浮點(diǎn)值(僅C99有效) %A 同上%c 讀入一個(gè)字符%d 讀入十進(jìn)制整數(shù)%i 讀入十進(jìn)制,八進(jìn)制,十六進(jìn)制整數(shù)%o 讀入八進(jìn)制整數(shù)%x 讀入十六進(jìn)制整數(shù)%X 同上%c 讀入一個(gè)字符%s 讀入一個(gè)字符串%f 讀入一個(gè)浮點(diǎn)數(shù)%F 同上%e 同上%E 同上%g 同上%G 同上%p 讀入一個(gè)指針%u 讀入一個(gè)無符號(hào)十進(jìn)制整數(shù)%n 至此已讀入值的等價(jià)字符數(shù)%[] 掃描字符集合%% 讀%符號(hào)附加格式說明字符表修飾符 說明L/l 長度修飾符 輸入"長"數(shù)據(jù)h 長度修飾符 輸入"短"數(shù)據(jù)W 整型常數(shù) 指定輸入數(shù)據(jù)所占寬度* 星號(hào) 空讀一個(gè)數(shù)據(jù) hh,ll同上h,l但僅對(duì)C99有效。
(B) 空白字符空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符,空白符可以是space,tab,newline等等,直到第一個(gè)非空白符出現(xiàn)為止。(C) 非空白字符一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。
注:scanf()控制串知識(shí)就介紹到這里(應(yīng)該比較齊全了^_^),如有遺漏下次補(bǔ)上。下面將結(jié)合實(shí)際例程,一一闡述.三、scanf()函數(shù)的控制串的使用例1.#include "stdio.h" int main(void) { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c);return 0;} 運(yùn)行時(shí)按如下方式輸入三個(gè)值:3□4□5 ↙(輸入a,b,c的值)3,4,5 (printf輸出的a,b,c的值) (1) &a、&b、&c中的&是地址運(yùn)算符,分別獲得這三個(gè)變量的內(nèi)存地址。
(2) "%d%d%d"是按十進(jìn)值格式輸入三個(gè)數(shù)值。輸入時(shí),在兩個(gè)數(shù)據(jù)之間可以用一個(gè)或多個(gè)空格、tab鍵、回車鍵分隔。
以下是合法輸入方式: ① 3□□4□□□□5↙ ② 3↙ 4□5↙ ③ 3(tab鍵)4↙ 5↙例2.#include "stdio.h" int main(void) { int a,b,c;scanf("%d,%d,%d",&a,&b,&c);printf("%d,%d,%d\n",a,b,c);return 0;} 運(yùn)行時(shí)按如下方式輸入三個(gè)值:3,4,5 ↙(輸入a,b,c的值)或者3,□4,□5 ↙(輸入a,b,c的值)3,□□□4,□5 ↙(輸入a,b,c的值)。
都是合法的,但是","一定要跟在數(shù)字后面,如:3□,4,□5 ↙就非法了,程序出錯(cuò)。(解決方法與原因后面講)再如:1、sacnf()中的變量必須使用地址。
int a, b;scanf("%d%d",a,b); //錯(cuò)誤scanf("%d%d",&a,&b);2、scanf()的格式控制串可以使用其它非空白字符,但在輸入時(shí)必須輸入這些字符。例:scanf("%d,%d",&a,&b); 輸入: 3,4 ↙(逗號(hào)與"%d,%d"中的逗號(hào)對(duì)應(yīng)) scanf("a=%d,b=%d",&a,&b); 輸入: a=3,b=4 ↙("a=","b=",逗號(hào)與"%d,%d"中的"a=","b="及逗號(hào)對(duì)應(yīng))3、在用"%c"輸入時(shí),空格和“轉(zhuǎn)義字符”均作為有效字符。
例:scanf("%c%c%c",&c1,&c2,&c3); 輸入:a□b□c↙ 結(jié)果:a→c1,□→c2,b→c3 (其余被丟棄)scanf()函數(shù)接收輸入數(shù)據(jù)時(shí),遇以下情況結(jié)束一個(gè)數(shù)據(jù)的輸入:(不是結(jié)束該scanf函數(shù),scanf函數(shù)僅在每一個(gè)數(shù)據(jù)域均有數(shù)據(jù),并按回車后結(jié)束)。 ① 遇空格、“回車”、“跳格”鍵。
② 遇寬度結(jié)束。 ③ 遇非法輸入。
問題二:scanf()函數(shù)不能正確接受有空格的字符串?如: I love you!#include int main(){ char str[80]; scanf("%s",str); printf("%s",str); return 0;}輸入:I live you!輸出:I scanf()函數(shù)接收輸入數(shù)據(jù)時(shí),遇以下情況結(jié)束一個(gè)數(shù)據(jù)的輸入:(不是結(jié)束該scanf函數(shù),scanf函數(shù)僅在每一個(gè)數(shù)據(jù)域均有數(shù)據(jù),并按回車后結(jié)束)。 ① 遇空格、“回車”、“跳格”鍵。
② 遇寬度結(jié)束。 ③ 遇非法輸入。
所以,上述程序并不能達(dá)到預(yù)期目的,scanf()掃描到"I"后面的空格就認(rèn)為對(duì)str的賦值結(jié)束,并忽略后面的"love you!".這里要注意是"love you!"還在鍵盤緩沖區(qū)(關(guān)于這個(gè)問題,網(wǎng)上我所見的說法都是如此,但是,我經(jīng)過調(diào)試發(fā)現(xiàn),其實(shí)這時(shí)緩沖區(qū)字符串首尾指針已經(jīng)相等了,也就是說緩沖區(qū)清空了,scanf()函數(shù)應(yīng)該只是掃描stdin流,這個(gè)殘存信息是在stdin中)。我們改動(dòng)一下上面的程序來驗(yàn)證一下:#include int main(){ char str[80]; char str1[80]; char str2[80]; scanf("%s",str);/*此處輸入:I love you! */ printf("%s",str); sleep(5);/*這里等待5秒,告訴你程序運(yùn)行到什么地方*/ scanf("%s",str1);/*這兩句無需你再輸入,是對(duì)鍵盤盤緩沖區(qū)再掃描 */ scanf("%s",str2);/*這兩句無需你再輸入,是對(duì)鍵盤盤緩沖區(qū)再掃描 */ printf("\n%s",str1); printf("\n%s",str2); return 0;}輸入:I love you!輸出:I love you!好了,原因知道了,那么scanf()函數(shù)能不能完成這個(gè)任務(wù)?回答是:能!別忘了scanf()函數(shù)還有一個(gè) %[] 格式控制符(如果對(duì)%[]不了解的請(qǐng)查看本文的。
去百度文庫,查看完整內(nèi)容>內(nèi)容來自用戶:暗香飛度C語言考試必備基礎(chǔ)知識(shí)點(diǎn)整理【考點(diǎn)1】C程序 C語言程序結(jié)構(gòu)有三種:順序結(jié)構(gòu),循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)),選擇結(jié)構(gòu)(if和switch) 【考點(diǎn)2】main函數(shù) 每個(gè)C語言程序中main函數(shù)是有且只有一個(gè)。
讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。 【考點(diǎn)3】存儲(chǔ)形式 計(jì)算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。
最低的存儲(chǔ)單元是bit(位),位是由為0或者1構(gòu)成。byte是指字節(jié),一個(gè)字節(jié)=八個(gè)位。
數(shù)據(jù)存放的位置就是它的地址。 【考點(diǎn)4】注釋 是對(duì)程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【考點(diǎn)5】書寫格式 每條語句的后面必須有一個(gè)分號(hào),分號(hào)是語句的一部分。一行內(nèi)可寫多條語句,一個(gè)語句可寫在多行上。
【考點(diǎn)6】標(biāo)識(shí)符 合法的用戶標(biāo)識(shí)符考查: 合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語言標(biāo)識(shí)符分如下3類 (1)關(guān)鍵字。它們?cè)诔绦蛑杏泄潭ǖ暮x,不能另作他用。
如int、for、switch等。 (2)預(yù)定義標(biāo)識(shí)符。
預(yù)先定義并具有特定含義的標(biāo)識(shí)符。如 【考點(diǎn) 注意。
指針,就像學(xué)校的信箱一樣。
你跟別人說,給我寫信,寄到XXXX大學(xué)509號(hào)信箱,別人怎么知道509信箱是啥?不過他不用管,只管把信發(fā)過來,到時(shí)候你去箱子里取東西就是了。只要這么想,就拿指針當(dāng)信箱吧,往那里送信行了,其它不管,一切問題就簡單了。
c與機(jī)器聯(lián)系緊密,抽象程度不是太高,所以機(jī)器層面的地址也拿過來了,改名叫指針。遇到指針,要讀成“地址變量”,其實(shí)指針就是一個(gè)存放整數(shù)(地址就是一個(gè)整數(shù))的變量而已,多少級(jí)都是如此。
比如,有一間房子,它的地址是:人民路108號(hào)。這個(gè)房子相當(dāng)于一個(gè)變量。
如果它是普通變量,則房子里可能今天住的是張三,明天住的是李四。張三、李四就是這個(gè)變量的值。
通過訪問這間房子,我們可以直接找到張三或李四。如果它是一個(gè)指針變量,則房子里不住具體的人,而是放一張紙條,上面寫:‘南京東路77號(hào)’。
‘南京東路77號(hào)’是一個(gè)什么東西?是一個(gè)地址。通過該地址,我們繼續(xù)找,結(jié)果在‘南京東路77號(hào)’里找到張三。
變量的存儲(chǔ)的值可以改變,指針變量的值同樣可以變更:過一天,我們?cè)偃ピL問這個(gè)房子,紙條變了‘珠海路309號(hào)’,通過它,我們找到的是另一個(gè)人?!?amp;和*”,它們是一對(duì)相反的操作,'&'取得一個(gè)物的地址(也就是指針本身),'*'得到一個(gè)地址里放的物(指針?biāo)赶虻奈铮?/p>
這個(gè)東西可以是值(對(duì)象)、函數(shù)、數(shù)組、類成員(class member)等等。理解什么是'多級(jí)指針':有一個(gè)事件:C住在了某酒店的房間里,他的房間號(hào)碼是1001。
B知道C的房間號(hào)碼是1001,而B住的房間號(hào)碼是1081?,F(xiàn)在A想要找到C,但是A不知道C的房間號(hào)碼是多少。
但是A知道B一定知道C的房間號(hào)碼。所以A去1081房間去找B,A問B:C的房間號(hào)碼是多少。
B告訴A:C的房間號(hào)碼是1001。這時(shí)候A就可以直接去1001號(hào)房間找到C。
C 語言屬于易學(xué)難精的一門計(jì)算機(jī)語言。
如果只是簡單學(xué)習(xí)C語言,那么符合以下條件即可開始學(xué)習(xí):1、識(shí)字,可以閱讀C語言教材;2、認(rèn)識(shí)英文字母,標(biāo)點(diǎn)符合,阿拉伯?dāng)?shù)字,并可以在電腦上打出來。如果要想把C語言學(xué)的精通,那么如果有如下基礎(chǔ),則相對(duì)更容易一些:1、數(shù)學(xué)基礎(chǔ)。
C語言中很多方面涉及數(shù)學(xué)模型,所以數(shù)學(xué)好對(duì)C的學(xué)習(xí)幫助很大。2、英文基礎(chǔ)。
流暢的英文閱讀能力,可以輔助C語言學(xué)習(xí)。3、基本的硬件知識(shí)。
C語言是一門直接面向底層,可以操作硬件的計(jì)算機(jī)編程語言,如果可以了解部分硬件知識(shí),對(duì)指令集,內(nèi)存的訪問等有一定了解,那么更容易深入學(xué)習(xí)C語言本質(zhì)。4、算法及數(shù)據(jù)結(jié)構(gòu)。
編程離不開算法。剛學(xué)編程可以一點(diǎn)算法不懂,但一個(gè)精通C語言的人是必須要學(xué)習(xí)算法的。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:3.647秒