C語言 陣列引數傳遞問題

2021-09-20 03:01:58 字數 675 閱讀 3489

陣列傳遞引數的話,如果直接傳指標過去。對陣列引數的操作會改變原始變數的值。如果不想影響原始變數的話,需要在函式裡面定義新的區域性陣列變數。賦值給區域性陣列變數,對區域性陣列變數進行操作。

#include #include #include int setarray(char *array)

int setarrayb(char *array)

; memcpy(arrayb, array, 2);

arrayb[0]++;

arrayb[1]++;

printf("arrayb[0] = %d\n", array[0]);

printf("arrayb[1] = %d\n", array[1]);

return 0;

}int printarray(char *array)

int main();

setarrayb(array);

printarray(array);

setarray(array);

printarray(array);

getchar();

return 0;

}

程式結果:

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

本文以 int 型為例,以函式func為例 1 int iexama 定義乙個整型數 2 int pexamb 定義乙個指向整型數的指標 3 int iexamc 4 定義乙個一維陣列 4 int pexamd 5 定義乙個陣列,陣列的每個元素是 指向整型數 的指標 5 int iexame 6 7...

c語言 函式傳遞陣列問題

題目 定義乙個函式,使用二維陣列作為傳入引數,在主函式中輸入4 4的二維陣列,呼叫已定義的函式,把該矩陣傳入,在主函式中輸出結果。函式功能 使二維陣列中兩條對角線上的元素均為1,其餘元素均為0。解 include include intdiagonal assignment int a 4 4 el...

C語言引數傳遞

c 語言引數傳遞方式有傳值和傳位址兩種方式。1 傳值方式 原理 形參和實參佔不同記憶體單元,傳遞的實際上是實參變數或表示式的乙個拷貝副本,將這個副本值傳給形參,形參記憶體單元內容儲存的正是這個副本值,相當於給形參進行初始化,形參的值發生變化也不會傳回給實參,因此是單向傳遞。例如 void incre...