關於c語言中陣列名作為引數傳遞的問題

2021-03-03 21:58:47 字數 927 閱讀 1279

1樓:匿名使用者

陣列名作為引數就退化

為指標.

所以在你的sizeofmat中,sizeof(x)就值就是sizeof一個指標的值.

因為指標就是地址,陣列名也是地址.

所以你陣列名作為引數的時候,是不會傳遞整個陣列的,而是傳遞了一個地址,就是指標.

2樓:匿名使用者

sizeofmat的引數錯誤;必須是陣列型別;sizof(x)才能將其視為陣列來檢測

c語言中,陣列名作為函式引數,屬於什麼傳遞,為什麼?

3樓:行了我

c語言中,陣列名作為函式引數,屬於陣列引數傳遞。在vb6.0中,允許使用陣列作為實參傳遞到子過程的形參中,陣列傳遞必須採用地址傳遞的方式來傳遞引數。

陣列型變數名本身只是該陣列所佔儲存空間的首地址,函式呼叫時,系統不會為形參分配陣列儲存空間,而是僅僅分配一個存放陣列地址(第一個元素地址)的儲存空間,此後,將實引數組的首地址傳遞給形參變數。

4樓:膽市倨

屬於地址傳遞,在函式裡修改的話,將直接影響呼叫方的數值。這是因為陣列名代表這個陣列的首地址,不過是靜態不可更改的而已。在函式裡用引用[i]下標時,就是找到這個陣列第i號元素的地址進行修改的。

所以是第於是地址傳遞。

5樓:匿名使用者

你要記住,所有傳遞給函式的引數都是通過值傳遞方式進行的。陣列名作為函式引數也不例外。

c語言中陣列名作為引數有什麼特點

6樓:倒黴熊

陣列名作為引數,在引數的傳遞中 會退化為指標,也就是說 陣列名作為引數,傳遞的是陣列的首地址。

7樓:

陣列名相當於記憶體中 該陣列的首地址

C語言裡陣列名是地址嗎,C語言中陣列名和指標的區別

是地址,可以稱作陣列地址,也可以看成第一個元素的地址。舉個例子 include int main int argc,char argv p array printf p 2 d n p 2 return 0 這個程式輸出結果如下 p 2 3 程式的第六行 p array 就是把陣列地址賦值給地址變數...

關於c語言把陣列名賦予指標的問題

就是指向一個地址。陣列第一個元素的地址就是陣列地址。你的理解從本質來 上就有問題自 int p1 a不能通過編譯,因為a是二維陣列指標,型別是int 3 無法轉換到int 型。必須用int p1 3 a或者int p1 a 0 才可以。同理int p2 a 0 無法通過編譯,因為a 0 是一個int...

在C語言中陣列名是地址,那麼結構體名是不是地址呢

使用 取地址運算子 才能得到結構體的地址。和陣列不一樣,單獨的結構體名不是該結構體地址的 同義詞。單獨的機構體名不是該機構體的地址。當然不是,結構體名你可以理解成一個資料型別 不是,結構體名是一個型別名 不是,必須使用 才能得到地址。c語言中陣列名是一個地址變數嗎 結構體名相當於類名,作用也與類名相...