C言語の配列形式パラメータの定義方法
C言語で配列の形参を定義する方法は次のとおりです。
- 配列のアドレスを渡す:ポインタを形式パラメータとして使う。 配列の形式パラメータを定義する際、ポインタ型宣言を使うことができます。 例えば、
- void functionName(int *arr, int size) {
// 関数の本体
} - この状況では、配列の要素に、関数の内部からポインタを使用してアクセスして変更できます。
- 配列内のデータを渡す時、配列のサイズを明示的に指定する方法である。 配列の仮引数を定義する際、具体的な配列の型宣言を使用してサイズを指定できます。例:
- void関数名(int配列、intサイズ){
// 関数本体
} - ポインタ記号を使わず、配列型を使用する以外の点は、最初の方法に似ています。
関数呼び出しでは、配列の仮引数に渡す実引数は配列型でなければならず、ポインター型ではいけないことに注意してください。
int main() {
int *arr = malloc(sizeof(int) * 10); // 动态分配数组内存
functionName(arr, 10); // 错误!arr是指针类型,而不是数组类型
free(arr);
return 0;
}
具体型の配列を使うのが正攻法です。
int main() {
int arr[10]; // 声明一个具有10个元素的数组
functionName(arr, 10); // 正确!传递数组类型
return 0;
}