首頁 現(xiàn)實

程序媛養(yǎng)成計劃

第五十四章 尾聲(二)

程序媛養(yǎng)成計劃 任煦之秋 2069 2020-05-27 22:37:25

  今天的老爹似乎有些著急,在講完枚舉類型后又風風火火地把結(jié)構(gòu)體和文件指針講了一遍,也沒有問我們有沒有聽懂,就草草地結(jié)束了C語言的所有課程。

  「孩子們,C語言的基礎(chǔ)課咱們就上到這兒,但是你們一定要記住,這并不意味著這條路已經(jīng)走到了重點。

  相反,其實你們才剛剛起步。有道是師父領(lǐng)進門,修行在個人。作為你們的領(lǐng)路人,我也只能帶你們走到這里了,接下來的漫漫編程路,就需要你們自己上下而求索。

  其實除了這些,C語言還有多線程、網(wǎng)絡(luò)套接字、數(shù)據(jù)庫等各種高深的知識,如果你們想要了解這些技術(shù),就得靠你們自己通過網(wǎng)上的資料學習了。你們現(xiàn)在具備的知識,已經(jīng)足夠支撐你們?nèi)W習這些東西了。

  學習完這些知識,你們已經(jīng)就正式升級成為了一名編程菜鳥,雖然還是菜鳥,但是脫離了「小」的范疇,這意味著你們已經(jīng)具備了在程序世界里飛翔的能力。

  所以你們可以嘗試著探索這個世界,慢慢地解開它的神秘面紗。興許在途中會遇到狂風暴雨,電閃雷鳴,也會穿越荊棘,經(jīng)歷沼澤,但是希望你們能夠越挫越勇,那些殺不死我們的,只會讓我們更強大!」

  聽老爹這話,是準備對我們進行放羊,任由我們自生自滅的節(jié)奏啊!在我還沒有反應(yīng)過來,老爹便和老媽出門去了,只留下我和小弦子面面相覷。

  「爺爺奶奶,老爹老媽這是怎么了?」

  我一臉懵逼地望著爺爺奶奶詢問道。

  「你媽媽身體有些不舒服,你老爹陪她去醫(yī)院看看?!?p>  「難怪老爹一反常態(tài),原來是老媽身體不適哦!切,果然是為了老婆,連基本的職業(yè)操守都沒有了?!?p>  不過鄙視歸鄙視,我還是有些擔心老媽的情況的。

  「那是他們大人的事情,你一個小孩兒擔心也沒有什么用,你要做的就是管好自己,別成為他們的累贅?!?p>  眉頭緊皺的我聽了小弦子的話后真的想兩腳踹死他,雖然他說得很有道理,但是也太難聽了,什么叫累贅?

  于是乎我和小弦子把老爹先前快速講的內(nèi)容給重新回顧了一邊,按照書上寫了幾個例程調(diào)試。

  其實結(jié)構(gòu)體也不難,它就是由若干個數(shù)據(jù)類型組合而成。比如說我們需要在C語言中用一種數(shù)據(jù)類型來描述一個人,那么用結(jié)構(gòu)體就非常合適。

  描述一個人的基本信息無非是姓名、年齡、性別和地址,如果用一個結(jié)構(gòu)體來定義人這種事物的話,就是:

  struct Person

  {

  String name;

  int age;

  String sex;

  String address;

  };

  如果我們要聲明一個Person變量,也需要使用struct關(guān)鍵字:

  struct Person p;

  對于結(jié)構(gòu)體變量的初始化有兩種方式,一種在聲明時就初始化:

  struct Person p ={“張三“, 18,“男“,“CD市“};

  這種方式有點像是數(shù)組,在大括號中給每一個字段賦值,字段之間用逗號隔開。當然了,如果是字符串,需要用雙引號,字符單引號。

  除此之外,還有一種初始化方法:

  struct Person p;

  p.name =“張三“;

  p.age = 18;

  p.sex =“男“;

  p.address =“CD市“;

  從第二種初始化方式來看,如果要使用一個結(jié)構(gòu)體的字段,通過結(jié)構(gòu)體變量.字段名就可以了。

  結(jié)構(gòu)體類型和其他類型一樣,也可以用數(shù)組、指針等,有所不同的時候,當用一個結(jié)構(gòu)體指針指向某個結(jié)構(gòu)體變量時,如果要通過指針來使用結(jié)構(gòu)體的字段,這時就不能再用「.」了,而是用「->」。比如說:

  struct Person* sp =&p;

  sp->name =“張三“;

  sp->age = 18;

  sp->sex =“男“;

  sp->address =“CD市“;

  當然了,每次聲明變量時都都上struct關(guān)鍵字挺麻煩的,這個時候又輪到typedef關(guān)鍵字上場了,只要在定義一個結(jié)構(gòu)體使用它,后面在定義結(jié)構(gòu)體變量時都不用再跟上struct關(guān)鍵字了。

  typedef struct

  {

  String name;

  int age;

  String sex;

  String address;

  } Person;

  Person p;

  p.name =“張三“;

  p.age = 18;

  p.sex =“男“;

  p.address =“CD市“;

  至于文件指針嘛,其實它就是一個名為FILE的結(jié)構(gòu)體,通過調(diào)用一些列庫函數(shù)可以實現(xiàn)對磁盤上的文件進行讀寫。

  老爹說這個倒是不用死記硬背,因為有些東西的確挺繁瑣的,只要查閱資料能夠正確的使用就行了。

  按照書上的例程,我和小弦子都嘗試一下。因為不熟悉,我們倆都犯了不少的錯。好在通過相互檢查以及共同閱讀編譯時的錯誤信息,我們總算是成功地實現(xiàn)了文件的讀寫功能。

  既然如此,立刻打開推箱子的游戲,直接進行實戰(zhàn),畢竟這個游戲從文件中加載地圖數(shù)據(jù)以及保存每一步操作的狀態(tài)信息還沒有完成。一直以來,這都是我和小弦子的心病,時刻惦記著呢。

  只要完成這兩個功能,推箱子這個游戲就漸漸趨近于完美了。

  正是基于此種原因,我和小弦子是干勁十足。學著老爹為我們分析公共能需求的過程,我和小弦子就這兩個功能的實現(xiàn)以及函數(shù)的確定展開了激烈地爭斗。

  期間爺爺奶奶來我房間們勸導(dǎo)了好多次,讓我們和氣生財,有話好好說。

  雖說這個形式上是有些不太好,但是效果倒是挺好了,很快我們就確定了數(shù)據(jù)保存和讀取的格式。并且對細節(jié)進行了商定,最終形成了一個文檔。

  當然了,比起老爹之前給我們制定的設(shè)計概要文檔來說,我們這個就顯得有些粗淺了。但是這好歹是我們在不借助任何外力地作用下完成的,可以說是具有劃時代的意義,因為我們實現(xiàn)了從0到1的過程。

  接下來就是按圖施工了,因為我們考慮欠妥,在代碼實現(xiàn)的過程中可以說是狀況百出,于是我們寫的那份文檔的內(nèi)容在不停的修改,到了最后已經(jīng)被改得面目全非了,我和小弦子兩個締造者居然都不認識。

  好在我和小弦子都不是輕易放棄之輩,功能總算是在老爹回來之前給完成了!

  多次測試沒有問題后,我和小弦子嘗試在文件中添加更多的地圖數(shù)據(jù),又經(jīng)過多次測試,都沒有出問題!

  我和小弦子頓時信心大增,一鼓作氣在網(wǎng)上找了足足30幅地圖!

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南