指標
指標變數的值是乙個位址。
變數的指標就是變數的位址。存放變數位址的變數是指標變數。
其一般形式為:
型別說明符 *變數名;
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...