C 陣列作函式引數時size變化問題

2021-09-19 04:16:50 字數 678 閱讀 5717

陣列元素個數可通過如下方式得到:

sizeof(a)/sizeof(a[0])
但是陣列作為函式引數時,就發生了變化,測試如下:

#includeusing namespace std;

void test(int a)

int main()

; cout << "-----------main中----------" << endl;

//陣列大小

cout << "sizeof(a): " << sizeof(a) << endl;

//每個元素大小

cout << "sizeof(a[0]): " << sizeof(a[0]) << endl;

//陣列元素個數

cout << "元素個數: " 結果為:

可以看到,相同的陣列,作引數時大小發生了變化。

但可以正確訪問:

原因可能是:只將陣列指標傳了過去,並沒有傳陣列的大小。

C 陣列作引數傳遞

這幾天自己寫了乙個 d3d畫圖的類 很短 都沒幾行 除錯 沒有錯誤但是執行的時候卻 一直不會出影象不知道怎麼回事 最後只有慢慢改 不用類 和 類 結合起來慢慢除錯 最後 終於找到了 原因 今天一直坐在電腦前 對這短短的幾行 卻就是不知道 錯了 真鬱悶啊 不過最後除錯出來還不錯 c 裡面陣列作引數傳遞...

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...