對於指標傳入函式,卻最終沒有改變指標的值的問題

2021-10-05 19:31:25 字數 1346 閱讀 6308

原本寫了乙個函式,用於去掉字串中的空格

發現並不能改變陣列的值,原因是兩個陣列的位址不一樣。=等號只是傳位址,而memcpy是將要改變字串的整個空間值全都改變了

#include

voidm(

char

*a)void

main()

;char b=

"";char

*s=b;

printf

("%p\n"

,&s)

;printf

("%p\n"

,b);

m(s)

; system (

"pause");

}

位址傳入接受指標變數的函式

void fun int a,int b int main 有乙個想法困擾了我很久。既然傳入的是位址,那麼直接交換位址不就好了?為什麼還要解引用再交換值呢?據此,我認為以下函式也能行得通。void fun int a,int b 但結果除錯的時候,沒有達到預期效果。想了很久,我試著這樣去解釋。因為函...

C語言 改變指標變數的值

例35 c語言程式設計實現改變指標變數的值。解題思路 指標p的值是可以變化的,printf函式輸出字串時,從指標變數p當時所指向的元素開始,逐個輸出各個字元,直到遇 0 為止。而陣列名雖然代表位址,但是它是常量,它的值是不能改變的。源 演示 include 標頭檔案 intmain 主函式 編譯執行...

C語言 改變指標變數的值

例35 c語言程式設計實現改變指標變數的值。解題思路 指標p的值是可以變化的,printf函式輸出字串時,從指標變數p當時所指向的元素開始,逐個輸出各個字元,直到遇 0 為止。而陣列名雖然代表位址,但是它是常量,它的值是不能改變的。源 演示 include 標頭檔案int main 主函式 編譯執行...