- 1、本文档共127页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 利用指標傳遞一維陣列到函數裡 可接收一維陣列之函數的定義格式如下 例如func() 的定義可撰寫成如下的格式 在呼叫函數func() 時 * 以指標傳遞一維陣列的範例 (1/2) 下面的範例說明如何以指標傳遞一維陣列 * 以指標傳遞一維陣列的範例 (2/2) * 利用函數傳回指標 (1/2) 下面的程式是示範如何利用函數傳回指標 * 利用函數傳回指標 (2/2) 綜合範例 傳入 10 個數字,存於一陣列中。利用一個函數輸入兩個指標以及一個陣列,在函數中找出最大及最小值。 Enter 10 numbers: 34 82 49 102 7 94 23 11 50 31 Largest: 102 Smallest: 7 * 解答 (1) #include iostream ? #define N 10 using namespace std;? void max_min(int a[], int n, int *max, int *min); ? int main(void) { int b[N], i, big, small; ? cout Enter ” N “ numbers:”endl; for (i = 0; i N; i++) cin b[i]; * 解答 (2) max_min(b, N, big, small); ? cout Largest: big endl; cout Smallest: “ small endl; ? return 0; } void max_min(int a[], int n, int *max, int *min) { int i; ? *max = *min = a[0]; for (i = 1; i n; i++) { if (a[i] *max) *max = a[i]; else if (a[i] *min) *min = a[i]; } } * * * * * * * * * * * * * * * * * * * * 指標變數的宣告 (1/2) 指標變數的宣告格式如下所示 下面的敘述為指標變數宣告的範例 * 把指標ptr指向整數變數num 下面是設定ptr=num的示意圖 在宣告指標變數時,也可以立即將它指向某個整數 指標變數的宣告 (2/2) * 位址運算子 位址運算子「」可用來取得變數的位址 舉例來說,num即代表取出num在記憶體中的位址 * 依址取值運算子 (1/3) 依址取值運算子「*」可取得指標所指向變數的內容 舉例來說,*ptr可取得num的值: * 依址取值運算子 (2/3) 下面的範例印出變數的位址與變數值 * 依址取值運算子 (3/3) 執行完第7行後,記憶體的配置 執行完第9行後,記憶體的配置 * 指標變數的使用 (1/2) 指標可以重新指向另一個相同型態的變數 * 指標變數的使用 (2/2) 記憶體的配置情形 執行完第8行 int *ptr; 執行完第10行 ptr=a; 執行完第13行 ptr=b; * 指標變數的大小 下面的程式是利用sizeof() 求出指標變數所佔的位元組 * 指標的操作練習 (1/3) 下面是一個簡單的範例,藉以熟悉指標的操作 * 指標的操作練習 (2/3) * 指標的操作練習 (3/3) 下表是變數a、b與指標ptr1、ptr2之值的變化情形 * 指標變數指向之型態 (1/2) 下面的程式示範錯誤的指標用法 * 指標變數指向之型態 (2/2) 編譯器會在編譯時發出下面的錯誤訊息 第9、10行的程式應修改成 prog9_6經過修正、編譯後的執行結果如下 * 傳遞指標到函數 (1/4) 將指標傳入函數裡,可利用如下的語法 * 傳遞指標到函數 (2/4) 設計address(),可接收指向整數的指標,沒有傳回值: 原型的宣告: void address(int *); // 宣告函數address()的原型 函數的定義: 函數的呼叫: * 傳遞指標到函數 (3/4) 下面是函數address() 的完整範例 * 傳遞指標到函數 (4/4) prog9_7內,指標ptr與p1均指向同一個變數 * 傳遞指標的應用 下面的程式是透過位址來改變呼叫端變數的內容 * 錯誤的示範 (1/4) 有些運算必須透過指標傳遞才能達成,下面為錯誤的示範 * 錯誤的示範 (2/4) 記憶體的配置情形 執行完第8行後,記憶體的配置情形 進入swap() 函數時,記憶體配置的情形 * 錯誤的示範 (3/4)
文档评论(0)