@interface ClassA : NSObject
- (void) doSomeThingA;
+ (void) doSomeThingB;
@end
ClassA* a = [ClassA init];
[a doSomeThingA];
[ClassA doSomeThingB];
其中繼承過來(lái)的init 定義的doSomeThingB是靜態(tài)方法, 用類名來(lái)調(diào)用,一般用來(lái)初始化實(shí)例,
doSomeThingA是動(dòng)態(tài)方法, 需要用實(shí)例a來(lái)調(diào)用。
靜態(tài)方法相當(dāng)于java的static方法 或c語(yǔ)言的所有方法, 在編譯后就能得到引用
動(dòng)態(tài)方法相當(dāng)于java的成員方法,只有實(shí)例才有方法的引用
一、C語(yǔ)言的結(jié)構(gòu) 1、程序的構(gòu)成,MAIN函數(shù)和其他函數(shù) 2、頭文件,數(shù)據(jù)說(shuō)明,函數(shù)的開始和結(jié)束標(biāo)志 3、源程序的書寫格式 4、C語(yǔ)言的風(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ī)則。 三、基本語(yǔ)句 1、表達(dá)式語(yǔ)句,空語(yǔ)句,復(fù)合語(yǔ)句。
2、數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用。 3、復(fù)合語(yǔ)句。
4、GOTO語(yǔ)句和語(yǔ)句標(biāo)號(hào)的使用。 四、選擇結(jié)構(gòu)程序設(shè)計(jì) 1、用IF語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)。
2、用SUITCH語(yǔ)句實(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語(yǔ)句和BREAK語(yǔ)句。 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語(yǔ)句和BREAK語(yǔ)句。 4、循環(huán)的嵌套。
六、數(shù)組的定義和引用 1、一維數(shù)組和多維數(shù)組的定義、初始化和引用。 2、字符串與字符數(shù)組。
七、函數(shù) 1、庫(kù)函數(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、簡(jiǎn)單的位運(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語(yǔ)言需要的基礎(chǔ)知識(shí)并不多,但是會(huì)一點(diǎn)英語(yǔ)就會(huì)學(xué)的很好。C語(yǔ)言只是一種工具,看你要用它做什么事情了。
如果你想考二級(jí)而且現(xiàn)在是零基礎(chǔ),希望你能找一下培訓(xùn)班,一個(gè)月兩個(gè)月就能學(xué)通。如果有其他語(yǔ)言的基礎(chǔ)就更好了,買一本C語(yǔ)言的書,千萬(wàn)別買一些古怪的出版社出的書,推薦英文教材或翻譯的教材,比如The C Program Language 就很不錯(cuò),對(duì)照著上面一頁(yè)一頁(yè)看,半個(gè)月應(yīng)該就能簡(jiǎn)單編程。然后就是做習(xí)題,二級(jí)開始幾道題是考公共基礎(chǔ)知識(shí)的,是全靠背的,馬虎不得,可是直接百度或Google“公共基礎(chǔ)知識(shí)+二級(jí)”會(huì)找到很多資料,找考題也如此“歷年C二級(jí)考題”,只做真題,不做模擬。因?yàn)槊磕瓿龅念}都差不多,考題做多了考試的中心思想也找到了。
如果你是要做底層硬件開發(fā),關(guān)于C語(yǔ)言方面的東西需要注意的到是不太多,主要針對(duì)某款MCU的初始化和算法的編寫。有了上面的二級(jí)基礎(chǔ)是很容易做到的。
學(xué)習(xí)哪門語(yǔ)言都需要不斷的練習(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);}格式字符 說(shuō)明%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è)無(wú)符號(hào)十進(jìn)制整數(shù)%n 至此已讀入值的等價(jià)字符數(shù)%[] 掃描字符集合%% 讀%符號(hào)附加格式說(shuō)明字符表修飾符 說(shuō)明L/l 長(zhǎng)度修飾符 輸入"長(zhǎng)"數(shù)據(jù)h 長(zhǎng)度修飾符 輸入"短"數(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)上我所見的說(shuō)法都是如此,但是,我經(jīng)過調(diào)試發(fā)現(xiàn),其實(shí)這時(shí)緩沖區(qū)字符串首尾指針已經(jīng)相等了,也就是說(shuō)緩沖區(qū)清空了,scanf()函數(shù)應(yīng)該只是掃描stdin流,這個(gè)殘存信息是在stdin中)。我們改動(dòng)一下上面的程序來(lái)驗(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);/*這兩句無(wú)需你再輸入,是對(duì)鍵盤盤緩沖區(qū)再掃描 */ scanf("%s",str2);/*這兩句無(wú)需你再輸入,是對(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)查看本文的。
去百度文庫(kù),查看完整內(nèi)容>內(nèi)容來(lái)自用戶:暗香飛度C語(yǔ)言考試必備基礎(chǔ)知識(shí)點(diǎn)整理【考點(diǎn)1】C程序 C語(yǔ)言程序結(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語(yǔ)言程序中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ì)程序的說(shuō)明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【考點(diǎn)5】書寫格式 每條語(yǔ)句的后面必須有一個(gè)分號(hào),分號(hào)是語(yǔ)句的一部分。一行內(nèi)可寫多條語(yǔ)句,一個(gè)語(yǔ)句可寫在多行上。
【考點(diǎn)6】標(biāo)識(shí)符 合法的用戶標(biāo)識(shí)符考查: 合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語(yǔ)言標(biāo)識(shí)符分如下3類 (1)關(guān)鍵字。它們?cè)诔绦蛑杏泄潭ǖ暮x,不能另作他用。
如int、for、switch等。 (2)預(yù)定義標(biāo)識(shí)符。
預(yù)先定義并具有特定含義的標(biāo)識(shí)符。如 【考點(diǎn) 注意。
指針,就像學(xué)校的信箱一樣。
你跟別人說(shuō),給我寫信,寄到XXXX大學(xué)509號(hào)信箱,別人怎么知道509信箱是啥?不過他不用管,只管把信發(fā)過來(lái),到時(shí)候你去箱子里取東西就是了。只要這么想,就拿指針當(dāng)信箱吧,往那里送信行了,其它不管,一切問題就簡(jiǎn)單了。
c與機(jī)器聯(lián)系緊密,抽象程度不是太高,所以機(jī)器層面的地址也拿過來(lái)了,改名叫指針。遇到指針,要讀成“地址變量”,其實(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 語(yǔ)言屬于易學(xué)難精的一門計(jì)算機(jī)語(yǔ)言。
如果只是簡(jiǎn)單學(xué)習(xí)C語(yǔ)言,那么符合以下條件即可開始學(xué)習(xí):1、識(shí)字,可以閱讀C語(yǔ)言教材;2、認(rèn)識(shí)英文字母,標(biāo)點(diǎn)符合,阿拉伯?dāng)?shù)字,并可以在電腦上打出來(lái)。如果要想把C語(yǔ)言學(xué)的精通,那么如果有如下基礎(chǔ),則相對(duì)更容易一些:1、數(shù)學(xué)基礎(chǔ)。
C語(yǔ)言中很多方面涉及數(shù)學(xué)模型,所以數(shù)學(xué)好對(duì)C的學(xué)習(xí)幫助很大。2、英文基礎(chǔ)。
流暢的英文閱讀能力,可以輔助C語(yǔ)言學(xué)習(xí)。3、基本的硬件知識(shí)。
C語(yǔ)言是一門直接面向底層,可以操作硬件的計(jì)算機(jī)編程語(yǔ)言,如果可以了解部分硬件知識(shí),對(duì)指令集,內(nèi)存的訪問等有一定了解,那么更容易深入學(xué)習(xí)C語(yǔ)言本質(zhì)。4、算法及數(shù)據(jù)結(jié)構(gòu)。
編程離不開算法。剛學(xué)編程可以一點(diǎn)算法不懂,但一個(gè)精通C語(yǔ)言的人是必須要學(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í)鳥. 頁(yè)面生成時(shí)間:3.647秒