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