第八章 指標

2022-09-03 19:45:12 字數 2270 閱讀 8556

<1>8.3.1 指標基礎及指標運算

<2>8.3.2 資料交換

<3>8.3.3 字串反轉及字串連線

<4>8.3.4 陣列元素奇偶排列

<1>掌握指標的概念和定義方法。

<2>掌握指標的操作符和指標的運算。

<3>掌握指標與陣列的關係。

<4>掌握指標與字串的關係。

<5>熟悉指標作為函式的引數以及返回指標的函式。

<6>了解函式指標。

實驗練習1: 指標基礎及指標運算

1.問題的簡單描述:

(1)定義乙個整型指標變數p,使它指向乙個整型變數a,定義乙個浮點型指標q,使它指向乙個浮點型變數b,同時定義另外乙個整型變數c並賦初值3。

(2)使用指標變數,呼叫scanf函式分別輸入a和b的值。

(3)通過指標間接訪問並輸出a、b的值。

(4)按十六進製制方式輸出p、q的值以及a、b的位址。

(5)將p 指向c, 通過p 間接訪問c的值並輸出。

(6)輸出p的值及c的位址,並與上面的結果進行比較。

2.實驗**:

/*

8-1.c

*/# include

intmain()

3.執行結果:

4.問題分析:

無實驗練習2: 資料交換

1.問題的簡單描述:

(1)定義兩個函式,分別為voidswap1(inta,intb)和voidswap2(inta,intb),用於交換a,b的值。

(2)從主函式中分別輸入兩個整型變數a、b。

(3)從主函式中分別呼叫上述兩個交換函式,並列印輸出交換後a、b的結果。

2.實驗**:

# include void swap1 (int x, int

y);void swap2 (int *x, int *y);

intmain()

void swap1(int x, int

y)void swap2(int *x, int *y)

3.執行結果:

4.問題分析:

僅僅是填書上需要填的空,沒有問題

實驗練習3:字串反轉及字串連線

1.問題的簡單描述:

(1)定義兩個字元指標,通過gets()函式輸入兩個字串。

(2)定義乙個函式char reverse(char str),通過指標移動方式將字串反轉。

(3)定義乙個函式char link(char str1, char *str2),通過指標移動方式將兩個字串連線起來。

(4)從主函式中分別呼叫上述函式,輸入字串並列印輸出結果。

2.實驗**:

# include char *reverse (char *str);

char *link (char *str1, char *str2);

intmain()

char *reverse (char *str)

return str; }

char *link (char *str1, char *str2)

putchar('\0

');

return

str1;

}

3.執行結果:

4.問題分析:

當q實驗練習4: 陣列元素奇偶排列

1.問題的簡單描述:

(1)定義乙個整型一維陣列,任意輸入陣列的元素,其中包含奇數和偶數。

(2)定義乙個函式,實現將陣列元素奇數在左,偶數在右的排列。

(3)在上述定義的函式中,不允許再增加新的陣列。

(4)從主函式中分別呼叫上述函式,列印輸出結果。

2.實驗**:

# include # define n 

10void arrsort (int a, int

n);int

main()

void arrsort (int a, int

n)}

3.執行結果:

4.問題分析:

這個題目沒有很複雜,只需要知道判斷奇數和偶數,將奇數往前移,偶數往後移就可以

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...

第八章 指標

指標 1,指標 指標,英文名是pointer,也叫位址,他是常量。他就是乙個記憶體空間的首位置。2,指標變數,位址變數 顧名思義,指標變數就是存放指標 位址 的變數。如果定義呢?short int p null 定義了乙個指標變數p,並且付給初始值為零。short int 就是型別。表示的是存放sh...

第八章 指標實驗

1 問題的簡單描述 流程圖如下 2 實驗 includeint main 輸出結果 3 問題分析 無。1 問題的簡單描述 流程圖如下 2 實驗 includevoid swap1 int x,int y void swap2 int x,int y int main void swap1 int x...