c语言可变参数矩阵初始化
时间: 2023-11-02 21:56:47 浏览: 95
C语言的可变参数函数可以使用stdarg.h头文件中的宏定义来实现。对于矩阵的初始化,可以先定义一个二维数组,再使用可变参数函数来依次初始化数组元素。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdarg.h>
void initMatrix(int rows, int cols, int matrix[rows][cols], ...) {
va_list args;
va_start(args, matrix);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = va_arg(args, int);
}
}
va_end(args);
}
int main() {
int matrix[2][3];
initMatrix(2, 3, matrix,
1, 2, 3,
4, 5, 6);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
在上面的示例代码中,我们定义了一个`initMatrix`函数来初始化矩阵。该函数的第一个参数是行数,第二个参数是列数,第三个参数是二维数组指针。接下来的可变参数为矩阵的元素值。在函数内部,我们使用`va_list`类型的`args`变量来获取可变参数,并依次将其赋值给二维数组中的元素。
在主函数中,我们定义了一个2行3列的矩阵,并调用`initMatrix`函数来初始化该矩阵。最后,我们使用两重循环来输出矩阵中的元素。
运行该程序,输出结果如下:
```
1 2 3
4 5 6
```
可以看到,矩阵已经成功地被初始化了。
阅读全文