c程式設計中,,陣列做引數的傳遞問題

時間 2022-07-21 18:35:06

1樓:帳號已登出

這個問題其實我也糾結過很久,後面看了很多人的理解和書上說的,下面是自己的理解哦,樓主可以參考下!如說得不好,還請提出來,自己好改正!

陣列做引數,傳遞的陣列的首址,從根本上來說已經不再是一個陣列,而是一個陣列副本的變數,這就好比我們經常寫的一個swap函式一樣,要交換兩個數,直接為swap(a,b)是不行的,必須為swap(*a,*b)。這裡的道理跟陣列形參是一樣過的,給樓主看一個例子

#include

void test2(char ss)

int main()

-----------------------------------------

output:

address of s in main:0x22ff30

address of ss:0x22ff30

address of &ss:0x22ff00

address of ss after operator = :0x40302a

-----------------------------------------

其中就可以清楚地看出來,陣列引數的傳遞關係!

指標這塊本來就是c中困難的,希望樓主好運!

2樓:匿名使用者

#include

void length(int a)

int main()

;length(a);

return 0;

}列印出來是1 2 4

a首地址傳入進來,編譯器將它轉化為指標了。

3樓:左自強

陣列做引數,傳遞的是陣列的首地址

4樓:匿名使用者

去這裡看下,應該 對你有幫助。

C中關於引數按引用傳遞的問題,C 中的out引數呼叫方法的時候需要傳遞對應的值嗎?

你的 這個方法 swap textbox t1,textbox t2 是交換好 變數後 又重新給文字框進行了賦值操作,當然文字框的值我們看到了改變!再看你的這個方法 swap textbox t1,textbox t2 同時2個變數,通過除錯,發現 textbox t3 new textbox t3...

c語言中指標做函式引數傳遞二維陣列

include void fun int p1 3 int p2 3 int main int p1 3 3 int p2 3 3 int i 0,j 0 fun p1,p2 for i 0 i 3 i for j 0 j 3 j printf d p2 i j printf n return 0 ...

C語言「檔案包含處理」中的引數傳遞問題

雖然在標頭檔案中和正常的程式檔案中的 沒有本質區別,但是強烈不建議你把實現 放在標頭檔案中,標頭檔案中一般只適合放需要對外界透露介面的函式宣告,公有預編譯定義 define 結構體以及類的宣告 非實現 公共型別 typedef 公共列舉 enum 這麼做的原因就是防止樓主所說的問題發生。在.c檔案中...