/***************** 指標開始 *****************/
1.運算子&。
* scanf("%d",&i);裡面的&—>獲得變數的位址,它的運算元必須是變數。
* int i;printf("%x",&i);—>位址的大小與否與int相同取決於編譯器。
int i;printf("%p",&i);位址和整數並不是永遠相同的,這取決於你的架構。
2.指標(point)。 p是位址,&是取位址,是取值本質:儲存位址的變數。 int i; int p=&i; int* p,q; //星p是乙個int型指標,q是乙個int型變數// int p,q; //星p是乙個int型指標,q是乙個int型變數//※變數的值是記憶體的位址;普通變數的值是實際的值;指標變數的值是具有實際值的變數的位址!!!即:–>&–>i**:
int main()void f(int *p)void g(int i)
3.左值之所以叫左值,是因為出現在賦值號左邊的不是變數,而是值,是表示式計算的結果。
4.傳入位址。 為什麼 —:int; scanf("%d",i);編譯沒有報錯?因為剛好是32wei架構的,整數和位址是一樣大的,對於scanf是一樣大的,以為你傳入的是位址,實際上是值。
5.交換變數的值
#include void swap(int *i,int *j);int main()void swap(int *i,int *j)
6.指標的用處二:函式返回運算的狀態,結果通過指標返回;常用的套路是讓函式返回不屬於有效範圍內的值來表示出錯;-1/0(在檔案操作中會看到大量的例子);但是當任何數值都是有效的可能結果時,就得分開返回了;後續的語言(c++/j**a)採用了異常機制來解決這個問題。
7.指標最常見的錯誤。定義了指標,但是還沒有讓它指向任何變數就開始使用指標。
《C程式語言》練習 3 3
練習 3 3 編寫函式 expand s1,s2 將字串 s1 中類似於 a z 一類的速記符號 在字串 s2 中擴充套件為等價的完整列表 abc xyz。該函式可以處理大小寫字母和數字,並可 以處理 a b c a z0 9 與 a z 等類似的情況。作為前導和尾隨的 字元原樣排印。那個if有點長...
C程式語言習題(3 3)
編寫函式expand s1,s2 將字串s1中類似於a z一類的速記符號在字串s2中擴充套件為等價的完整列表abc xyz。該函式可以處理大小寫字母和數字,並可以處理a b c a z0 9與a z等類似的情況。作為前導和尾隨的字元原樣複製 1 include2 include3 include45...
C程式語言(第二版)3 3
3 3 編寫函式expand s1,s2 將字串s1中類似與a z一類的速記符號在字串s2中擴充套件成等價的完整列表abc.xyz。該函式可以處理大小寫字母和數字,並可以處理a b c a z0 9與 a z等類似的情況 include includevoid expand char result,...