路漫漫其修遠(yuǎn)兮,吾將上下而求索;
敲代碼和學(xué)寫(xiě)程序語(yǔ)言對(duì)與我來(lái)說(shuō),只能是:學(xué)海無(wú)涯苦作舟,書(shū)山有路勤為徑啊 哎哎哎?。?!
今天想講的是:指針?? 結(jié)構(gòu)體??? 文件
指針:所謂的C語(yǔ)言指針,我們的第一印象就是我們?yōu)槭裁匆羔?/p>
??????????? 指針就是地址,由于通過(guò)地址能找到所需的變量單元,地址指向該變量單元(如同說(shuō),一個(gè)房間號(hào)“指向”,,某一房間一樣)。所以將地址形象化的稱(chēng)為“地址”。意思通過(guò)它能找到以它為地址的內(nèi)存單元。
‘*’:1.在聲明或定義變量時(shí)表示定義一個(gè)指針變量
? ? ? ? float b=20;
int c=10;
? ? ? ? int *a;定義一個(gè)指針變量 指向的內(nèi)存空間只能存放整數(shù)
? ? 注意:定義指針變量的時(shí)候一定要給初值? 不確定就給NULL
如:float *d=NULL;NULL指向內(nèi)存的起始地址? 0x00
? ? int *a=b;這個(gè)是不行的 指針變量只能存地址? 不能存具體值
int *a=&b;這個(gè)還是不行 整形指針只能存整形數(shù)據(jù)的地址
int *a=&c;正確
? 2.除了定義指針變量之外 都是訪問(wèn)某個(gè)地址的值
? 如:int *temp=&c;//定義指針變量1
? ? ? *temp=21;訪問(wèn)temp地址里面的數(shù)據(jù) 賦值為21
‘&’:取某個(gè)變量的地址
/*數(shù)組和 指針的關(guān)系
? 數(shù)組名并不是一個(gè)變量? 沒(méi)有分配內(nèi)存空間 int a=20
? 指針變量是有內(nèi)存空間*/
如果想給指針指向的區(qū)域賦值,有以下三種方法:
1.
2.
3.
結(jié)構(gòu)體:C語(yǔ)言允許用戶(hù)自己建立由不同類(lèi)型數(shù)據(jù)組成的組合型的數(shù)據(jù)結(jié)構(gòu),它成為結(jié)構(gòu)體
struct
//聲明一種類(lèi)型? struct Person(struct是聲明結(jié)構(gòu)體類(lèi)型是必須使用的關(guān)鍵字,不能省略)
聲明一個(gè)結(jié)構(gòu)體類(lèi)型的一般形式為:
struct 結(jié)構(gòu)體名
{成員列表};(大括號(hào)內(nèi)是該結(jié)構(gòu)體所包括的子項(xiàng),稱(chēng)為結(jié)構(gòu)體的成員(member))。
如:
定義結(jié)構(gòu)體類(lèi)型變量 :
文件:這里打開(kāi)文件有以下幾個(gè)步驟:
總結(jié):學(xué)到c語(yǔ)言的指針,結(jié)構(gòu)體,文件這里就像有點(diǎn)往c的深處摸索,感覺(jué)如果能把他們學(xué)好的話(huà),c就應(yīng)該掌握了很大一部分,但我現(xiàn)在感覺(jué)連皮毛都還沒(méi)學(xué)好,哎。加油吧。騷年!@