第7章字串与指标.ppt

  1. 1、本文档共144页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章字串与指标.ppt

第7章 字串與指標 第7章 字串與指標 在本章中,我們再次使用陣列。但是與其 像在第六章中一般考慮元素中所含的都是 數值的陣列,我們將會看每一個元素中都 含有一個單一字元的陣列。如這些陣列的 最後一元素中是空字元(\0),則這些字元陣 列稱為字串。 第7章 字串與指標 7.1 宣告,初始化及列印字串並了解記憶體的 安排 7.2 決定有關字串及字元的資訊與使用PRINTF 7.3 二維字元陣列 7.4 由鍵盤與檔案讀取字串 7.5 指標變數與陣列變數 7.6 在一個宣告中進行初始化 7.7 傳遞字串給使用者定義的函數 7.8 動態記憶存取 7.1 宣告,初始化及列印字串 並了解記憶體的安排 課題: 字元陣列 初始化單一字元 初始化字串 列印字串 記憶體安排 7.1 宣告,初始化及列印字串 並了解記憶體的安排 什麼是一個字串? 當一串由雙引號所封包的字元被寫在程式的本體中,會如何看待它呢? 我們如何才能不必逐個字元地初始化字串? 我們可以使用像cc=“This is a string constant,also called a string literal.”;般的指定敘述來儲存字串到陣列cc[ ]中嗎? 7.1 宣告,初始化及列印字串 並了解記憶體的安排 我們可以用什麼函數來列印一個單一字元? 我們可以用什麼函數來列印一個字串到螢幕上,而它們是如何運作的? 我們如何列印一個字串到一個檔案中? 如果我們寫了 char aa,ee[2]; aa=g; strcpy(ee,g); 則aa記憶體中的內容和ee[ ]記憶體中的內容會相同? 7.1 宣告,初始化及列印字串 並了解記憶體的安排 我們如何在我們的變數表中顯示字元陣列? 在位址被列印出來之後,我們可以了解本課程程式中的字串在記憶體中儲存的位置嗎? 記憶體的安排是何時完成的? 當程式執行時會發生什麼? 我們可以在宣告中初始化字元陣列就向對數值陣列做的一樣嗎? 7.1 宣告,初始化及列印字串 並了解記憶體的安排 為什麼我會想要在執行時期縮小、放大或重新安排記憶體區塊? 你可以在如何才能這麼做的細節方面給我們一些提示嗎? 每一個和ANSI C相容的編譯器都用相同的方式安排記憶體嗎? 我們可以總結我們所學到的C列印字元 / 字串的函數嗎? 7.1 宣告,初始化及列印字串 並了解記憶體的安排 什麼是一個字串?一個字串是一個字元的陣列其中包含 結尾空字元(\0)。譬如說,我們在本課程程式中使用敘述 bb[0]=C; bb[1]=a; bb[2]=t; bb[3]=\0; 以字元儲存了一個字串在字元陣列bb[ ]中,記得一個陣 列的元素是儲存在緊接且漸增的記憶體位址中。正因如 此,一個字串是由儲存在緊接的記憶體儲存格中的字元 碼(通常是ASCII或EBCDIC)所組成。最後一個記憶體 儲存格含有視作一個單一字元的脫離序列\0。 7.1 宣告,初始化及列印字串 並了解記憶體的安排 當一串由雙引號所封包的字元被寫在程式的本體 中,會如何看待它呢?C把它視為如同一個位 址。C實際上以儲存字串的第一個記憶體儲存格 的位址工作。我們隨後會更加詳細地看字串常數 所使用的位址。目前你只需要記得在程式本體中 C把字串常數視為一個位址。譬如說,每當我們 使用字串作為函數的引數時,我們也可以使用位 址。位址通常會由沒有括號的陣列名稱所代表。 7.1 宣告,初始化及列印字串 並了解記憶體的安排 我們如何才能不必逐個字元地初始化字 串?使用指定敘述逐個字元地初始化字串 是挺麻煩的。幸好C有庫存函數可使得初始 化字串容易些。譬如說,原型在檔案 string.h中的函數strcpy,把一個從某個位 址開始的字串複到以另一個位址開始的記 憶體儲存格。 7.1 宣告,初始化及列印字串 並了解記憶體的安排 我們可以使用像cc=“This is a string constant, also called a string literal.”;般的指定敘述來儲存字 串到陣列cc[ ]中嗎?不行,這是一個常見的錯 誤。我們不能用這個指定敘述因為C從指定敘述 右邊的文字字串看到一個位址。所以這樣子的敘 述導致C嘗試把一個位址儲存到 cc 所指示的位 置。但是陣列cc[ ]是宣告來儲存字元而不是位 址,所以指定敘述不能運作。 7.1 宣告,初始化及列印字串 並了解記憶體的安排 我們可以用什麼函數來列印一個單一字元?我們 先前示範過如何使用putchar及pr

文档评论(0)

wendang_12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档