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