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