通過指標修改外邊實參

2021-09-06 11:38:01 字數 577 閱讀 6834

函式內容如何改變外部的實參?

對於上面的問題,只有c中的指標能夠完成,

基本資料型別作為函式實參,只是將值純粹的傳遞給形參,形參的改變並不影響實參.

1 #include2

3void swap(char v1,char

v2)

1112

13int main(int argc,const

char *argv,const

char **env)

測試內部函式改變外部的實參,只有紙質能夠做到,

為什麼指標能夠做到呢?因為指標(是外邊函式的形參)指向的就是實參 的記憶體位址,

void swap(char *v1,char *v2) {

swap(&a,&b);

上面 的函式就不寫了!附個執行結果圖

2,利用指標實現函式有抖個返回值;

指標變數所在記憶體空間大小可用sizeof函式計算;

int *p1;

int a = sizeof(p1);

指標變數佔記憶體空間大小不會隨鎖指向的變數型別 的改變而發生大小的改變;

通過指標形參修改實參的值2

注意 圖示使用的位址只是假設的,並不是真正的記憶體位址,只是說明原理 上次說到的是修改基本型別的變數,這次來說修改指標變數的值 原因還是和以往一樣,函式只是改變了a的指向,並沒有影響到p 既然p是乙個變數,那麼要改變它就要通過傳遞它的位址找到它,然後修改記憶體資料,修改程式為 可以看到,成功改變了p...

const變數通過指標修改問題

const的變數在特定情況下可以通過指標修改,但是在另一些情況下是不能通過指標修改。以下是vc6下才測試。1.不能修改的情況 include int const a 10 void main void 程式編譯通過,但執行時錯誤 指示a儲存的空間不可以寫,也就是沒有寫許可權,不能修改其值。估計是儲存...

以指標作為實參的問題

以指標作為實參時,實參p傳遞給形參p1的其實是p的拷貝,所以在區域性函式中改變形參p1的指向對身處主函式的p是無影響的,但是因為p1是p的拷貝,所以他們的指向是相同的,所以可以通過p1修改了那塊記憶體的值。如果實參p的指向為空,也就是說p是乙個空指標的話,那麼它就沒有指向某塊記憶體,形參也就無法操作...