3 3日C語言筆記

2022-09-08 14:27:16 字數 980 閱讀 1392

/***************** 指標開始 *****************/

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,...