C語言複習4 練習(2018 11 20)

2021-09-01 11:33:26 字數 2059 閱讀 6050

指標

指標變數的值是乙個位址。

變數的指標就是變數的位址。存放變數位址的變數是指標變數。

其一般形式為:

型別說明符 *變數名;

eg:int *p;

指標變數初始化的方法

int a;

int *p=&a;

賦值語句的方法

int a;

int *p; p=&a;

指標變數可出現在表示式中,設 

int x,y,*px=&x;

指標變數 px 指向整數 x,則*px 可出現在 x 能出現的任何地方。

例如: y=*px+5; //表示把 x 的內容加 5 並賦給 y

y=++*px; //px 的內容加上 1 之後賦給 y,++*px 相當於++(*px)

y=*px++; //相當於 y=*px; px++

eg:

輸入 a 和 b 兩個整數,按先大後小的順序輸出 a 和 b。

int main() 

int main()

exchange(int *q1,int *q2,int *q3)

int main()

指標變數的運算

賦值運算:指標變數的賦值運算有以下幾種形式。

① 指標變數初始化賦值

② 把乙個變數的位址賦予指向相同資料型別的指標變數。

int a,*pa;

pa=&a; //把整型變數 a 的位址賦予整型指標變數 pa

③ 把乙個指標變數的值賦予指向相同型別變數的另乙個指標變數。

int a,*pa=&a,*pb; pb=pa; //把 a 的位址賦予指標變數 pb

由於 pa,pb 均為指向整型變數的指標變數,因此可以相互賦值。

④ 把陣列的首位址賦予指向陣列的指標變數。

int a[5],*pa;

pa=a;

(陣列名表示陣列的首位址,故可賦予指向陣列的指標變數 pa) 也可寫為: pa=&a[0];

// 數 組 第 一 個 元 素 的 地 址 也 是 整 個 數 組 的 首 地 址,也可賦予 pa

當然也可採取初始化賦值的方法:int a[5],*pa=a;

⑤ 把字串的首位址賦予指向字元型別的指標變數。

char *pc;

pc=「c language」;

或用初始化賦值的方法寫為:

char *pc=「c language」; 這裡應說明的是並不是把整個字串裝入指標變數,而是把存放該字串的字元數 組的首位址裝入指標變數。在後面還將詳細介紹。 ⑥ 把函式的入口位址賦予指向函式的指標變數。

例如: int (*pf)(); pf=f; //f 為函式名

加減算術運算

int a[5],*pa;     

pa=a; //pa 指向陣列 a,也是指向 a[0]

pa=pa+2; //pa 指向 a[2],即 pa 的值為&pa[2]

兩個指標變數之間的運算:只有指向同一陣列的兩個指標變數之間才能進行運算,否則 運算毫無意義。

#include int main()

i = 0;

while(n > 1)//迴圈到剩下乙個人為止

if(flag == 3)//找到為三的人

i++;

if(i == num)//因為是圍圈數人,所以數到第n個人時,下乙個為第乙個

}for(i = 0;i < num; i++)//尋找最後存在的那個人在第幾號

}return 0;

}

請程式設計找出1000以內的完數

C語言複習(4)

指標 1 指標的定義方法 例 int a 定義乙個指標變數a 指向整形。注意 1 所有指標變數佔4個位元組,指標變數只能存放位址 2 指標作為函式形參,在需要改變實參的值時,用位址傳遞 訪問記憶體的方法 1 通過變數名訪問,2 通過位址訪問 2 指標變數的使用 1 定義指標變數 2 給指標賦位址 3...

C語言練習題複習

1.日本某地發生了一件 案,警察通過排查確定殺人 必為4個嫌疑犯的乙個。以下為4個嫌疑犯的供詞。a說 不是我。b說 是c。c說 是d。d說 c在胡說 已知3個人說了真話,1個人說的是假話。現在請根據這些資訊,寫乙個程式來確定到底誰是 2.列印楊輝三角 3.輸出乙個整數的二進位制序列 define c...

C語言基礎練習4

1.用陣列來處理求fibonacci數列問題 includeint main for i 2 i 20 i f i f i 2 f i 1 for i 0 i 20 i printf n return 0 2.起泡法排序10個數 includeint main printf the sorted n...