int main()
使用指標間接訪問變數的值以及修改變數的值
int main()
pa是指位址, * pa是指取這個位址的內容
則&a是變數a的位址,*&a就是解引用a的值(即變數a)
int main ()
使用指標的指標間接訪問變數的值(**pa)
int main ()
g
*cp+1:
1、先運算*cp,再進行+1操作
2、首先是取的對應變數的值,然後再對這個數值進行+1操作
*(cp+1)
先運算cp+1(即指標後移乙個),
再運算*(cp+1)(即取下乙個變數所對應的數值)
在進行指標運算的時候列印結果可能不和自己預想的一樣,主要原因在於在給變數分配記憶體位址時可能順序發生了錯亂,所以此時可以去通過列印每個變數的位址去判斷自己的程式是否正確。
#includechar c1,c2,c3;
char *cp;
void setup()
int main()
++cp:指標指向的變數位址發生了變化(指向了下乙個位址)
cp++:當前使用cp仍然還是指向原來的變數,在第二次使用cp時才指向下乙個位址
*++cp:指標先指向下乙個位址(新的變數),再取對應位址上變數的值
#includechar c1,c2,c3;
char *cp;
void setup()
int main()
++cp:先取值,再對結果+1
( * cp)++:先取值列印,下次列印cp的值後數值+1,但是指標實際指向的位置沒有發生變化
++ * ++cp:指標先指向下乙個位址,在取值,然後再對結果+1
++*cp++:cp++指標指向了下乙個位址(但下次才起作用),取值(cp本來指向的變數),再對數值進行+1操作,,下次在列印cp位址和 *cp的值時均是下個位址的變數
#includechar c1,c2,c3;
char *cp;
void setup()
int main()
使用原有的庫函式計算字串長度
#include#includeint main()
寫乙個類似計算字串長度的函式
#include#include//引數是乙個字元指標,開始時指向了第乙個字元,直到遇到'\0'就算結束
//c語言的字串在結束時預設有乙個'\0' ,但是不會計算到字串長度中
int my_strlen(char *string)
return length;
} int main()
上面計算字串長度的函式中for迴圈也可替換為while
while(*string!='\0')
// 或者簡化為
while(*string++!='\0')
#include//在一組字串中查詢乙個字元,如果找到返回1;反之返回0
//引數1是乙個指標的指標
int find_char(char **stringss,char value)
} return 0;//沒有匹配到相關字母
} int main()
else
}
(1) 指標加或減乙個整數---->也就是指標所指向的記憶體位址發生變化(即指向的變數發生變化),指標位址前移或者後移
char:指標+1,位址+1
int:指標+1,位址+4
float:指標+1,位址+4
指標+1,所加的位址是對應資料型別的位元組數大小
(2)指標-指標:是檢視兩個指標之間相差幾個
a.對陣列操作時是最好的,因為對陣列操作變數在分配位址時是連續的,不會出現跳躍位址的現象
b.如果使用普通變數,在修改和編寫過程中,分配位址經常出現不連續的現象,觀察起來不是那麼直觀明顯
#includeint main()
1、在陣列中查詢乙個元素
函式的返回值是指標
int *find_init(…)
#include//返回值是指標 ,指標是個位址
int *find_init(int key,int arr,int len)
int main()
這幾天由於感冒不能去自習室學習,在宿舍學習其他的也看不進去,就打算再看看c語言吧(畢竟我的c語言太差了),記得前段時間找工作面試,有個面試官問我指標,讓我講講對指標的看法,我當時腦子裡感覺啥都沒有,也講不出來,所以那次面試印象非常深刻,心裡暗下決心抽空一定要把c語言再好好學學,補一補,即使沒有那次面試經歷也會學習的,因為c語言是那麼的重要。
最近從網上買了《c和指標》、《c陷阱與缺陷》、《c專家程式設計》、《c++沉思錄》,買書的目的主要是為了業餘時間提高一下自己的c語言以及在自習室犯睏學不進去的時候看會書提提神吧,目前的想法是這樣的,不知道能不能堅持看完。
現在已經開始了第一本《c和指標》,雖然看了一小部分,但是感覺還是收穫巨大的,每次看c語言都會有不同的收穫,也不知道這是第幾次打算學習c語言了,也不知道放棄了幾次了,希望這次自己可以堅持下去,使自己的c語言。我覺得有時間的真的可以買來讀讀這幾本書,感覺真的挺好的。
《C和指標》學習筆記
define name length 30 define addr length 100 define phone length 11 define max addresses 1000 char const lookup address char const name char const loo...
《C和指標》閱讀筆記 指標
無論是程式設計師還是計算機都無法通過值的位模式來判斷它的型別。型別是通過值得使用方法隱式確定的。編譯器能夠保證值的宣告和值的使用之間的關係時適當的,從而幫助我們確定值的型別。宣告乙個指標變數並不會自動分配任何記憶體。在對指標間接訪問前,指標必須進行初始化 使它指向現有的記憶體,或者它分配動態記憶體。...
c 學習筆記 指標和引用
指標和引用的區別 1 引用是乙個變數的別名,本身不單獨分配自己的記憶體空間,跟原來變數共享記憶體空間 而指標需要重新分配自己的記憶體空間,用來儲存指向物件的位址。2 引用訪問乙個變數是直接訪問,而指標是間接訪問。3 引用一經初始化就繫結到乙個記憶體空間,且只能是這個記憶體空間的名字,定義時必須初始化...