C語言基礎 指標(二)為什麼用指標

2021-10-14 03:43:24 字數 1200 閱讀 6747

int a =2;

int* b =

(int*)

0x0060feec

;*b =20;

printf

("a的位址%p\na的內容%d\n"

,&a,a)

;printf

("b的位址%p\nb的內容%d\n"

用途:arm裸機程式設計、arm驅動程式設計

volatile

int* b =

(int*)

0x0060feec

;

volatile:

簡易:可以保證每一次取資料都是在記憶體位址中取,雖然損失了時間,但可以保證每一次取出的數都是一致的,避免出現暫存器替換導致的變數值改變。

更完整:有些變數是用 volatile 關鍵字宣告的。當兩個執行緒都要用到某乙個變數且該變數的值會被改變時,應該用 volatile 宣告,該關鍵字的作用是防止優化編譯器把變數從記憶體裝入 cpu 暫存器中。如果變數被裝入暫存器,那麼兩個執行緒有可能乙個使用記憶體中的變數,乙個使用暫存器中的變數,這會造成程式的錯誤執行。volatile 的意思是讓編譯器每次操作該變數時一定要從記憶體中真正取出,而不是使用已經存在暫存器中的值。volatile的作用

void

swap

(int a,

int b)

intmain()

如果一定要使用形參和實參的方式:則可以通過設定全域性變數來實現、或通過return 返回(可傳回乙個陣列指標)

全域性變數法簡寫:

int c =0;

//此為全域性變數c

為什麼用指標 二

是的,a 和 b 的值倒過來了,為什麼呢?看程式 給 tmp 付給了 a的值 10 給a 付給了 b 的值 5 給 b 付給了 tmp 的值10 所以a 和 b 值倒過來了 void swap int a,int b intmain 怎樣才能用函式交換a 和 b 的值呢?用指標 看程式三 把 a,b...

為什麼用指標

相信接觸過程式設計的,大部分應該對c語言有一定了解或者學過一門c語言課程。或多或少聽到這種說法 c語言很難學,特別是指標。我大一下學期開的這門課,學完之後感覺還好 其實是我沒有深入學,典型的自我感覺良好 但指標那塊確實也沒太弄明白。現在好像明白了一點什麼是指標,在什麼情況下用比較好。int a 1 ...

單鏈表為什麼用指向指標的指標

int a 1,b 2 void change int x void change int x void main 上面的例子很好的說明了傳遞指標與傳遞指標的指標的不同 所以在建立單鏈表時,由於需要修改傳遞給呼叫函式的頭指標的值,所以需要傳遞指向頭指標的指標 include include incl...