C++中二维数组作为参数传递到一个函数

2020-06-19 教育 129阅读

方法1、 第一维的长度可以不指定;但必须指定第二维的长度。

#include

void print_a(int a[][5], int n, int m)   

{

int i, j;

for(i = 0; i < n; i++)

{

for(j = 0; j < m; j++)

printf("%d ", a[i][j]);

printf("\n");

}

}

方法2、指向一个有5个元素一维数组的指针。

void print_b(int (*a)[5], int n, int m)       

{

int i, j;

for(i = 0; i < n; i++)

{

for(j = 0; j < m; j++)

printf("%d ", a[i][j]);

printf("\n");

}

}

方法3、利用数组是顺序存储的特性。

void print_c(int *a, int n, int m)                         

{

int i, j;

for(i = 0; i < n; i++)

{

for(j = 0; j < m; j++)

printf("%d ", *(a + i*m + j));

printf("\n");

}

}

int main(void)

{

int a[5][5] = {{1, 2}, {3, 4, 5}, {6}, {7}, {0, 8}};

printf("\n方法1:\n"); 

print_a(a, 5, 5);

printf("\n方法2:\n"); 

print_b(a, 5, 5); 

printf("\n方法3:\n"); 

print_c(&a[0][0], 5, 5);

getch();

return 0;

}

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com