C語言指標理解patr1

2022-07-17 02:03:09 字數 807 閱讀 8126

今天在看《head first c語言》中,書中的**是*lat=*lat+1;我則寫成了*lat++;結果是並不能得到lat指標的內容加一。之後發現原來在c語言中*解指標運算子 與++後自增運算子的優先順序是相同的,*p++,後自增運算子++只作用於p,並不能作用於*p(如果*的優先順序更高的話才行)。

之後在除錯中又發現了乙個之前不了解的地方,在c語言中棧的儲存是向低位址擴充套件,也就是先宣告的變數在記憶體中反而記憶體位址是更大的。

1 #include 2

void go_south_east(int* lat,int*lon)

11int

main()

0022febc   0022feb8

0022febc

0022febc

0022febc 0022feb8

我現在的位置位於10經度 10緯度

--------------------------------process exited after

0.01538 seconds with return value 0

請按任意鍵繼續. . .

由此可見 後宣告的變數mylon在記憶體中的位址是小於mylat的,在方法中將mylon的位址加一,即得到mylat的記憶體位址。這裡也顯示了c語言與我之前看的c#書相同的一點,對於方法,傳輸給乙個變數的指標,在方法類可以對指標的內容進行修改,修改可以保留到方法外,而如果對於指標本身進行修改(指向新位址),外面是不會顯示改變的,因為傳輸的終歸只是位址的複製。c#中可以對引用型別使用ref和out來指向新引用,當方法為指標返回乙個新引用時才有意義。

C語言 指標理解

剛剛程式設計遇到了乙個問題,如下 include struct nodetree 101 int loc node creat bool build node t,char c return true intmain return0 預期結果,我本來想達到一種效果,就是將t傳進去,然後對t做修改,返...

C語言 指標1

指標恐怕是c語言中最不容易掌握的乙個概念了,但指標又是如此的重要,可以說不會指標,c語言就等於沒學。指標到底是乙個什麼東西呢?include int main char pch null char pstr hello pointer short pshort null int pint null ...

C語言指標1

陣列與指標 陣列的名字是第一元素的位址。include int main printf str 0 的位址是 p n str 0 輸出 str 0 的位址是 000000000062fdc0陣列相鄰每一元素之間相差值 資料型別的寬度 include int main float b 3 double...