C语言 定义函数有关问题 附代码
C语言 定义函数问题 附代码~
#include <stdio.h>
int exchange(int a[i][j])
{ for (i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d ",a[j][i]); //交换位置
return 0; }
int main ()
{ int b[3][3]={{1,2,3},{4,5,6},{7,8,9}};
exchange(b[3][3]);
return 0; }
3*3 二维数组 行列交换位置~ 哪里错了?3Q
------解决方案--------------------
数组作为参数可以看做指向其首元素的指针
二维数组可以看作是一个一维数组,它的每个元素都是一个一维数组,作为参数传递时,它可以看作是一个指向一维数组的指针,这个指针指向这个二维数组的第一个一维数组
void func( int a[10] )和void func( int a[10000] )没有任何区别,它们的参数都是两个指向int的指针a
因此,传递二维数组作为函数参数时,这个二维数组的第二维长度必须在代码里写明
因为本质上,这个参数是“一个指向一维数组的指针,这个一维数组的长度是这个二维数组的第二维”。编译时如果第二维不确定,就不能确定每个元素的偏移量。
此外,定义数组后,数组名可以看做指向其首元素的指针,也只能这样看待,除了定义时的初始化以外,数组不能整体操作
b[3][3]指的是b这个二维数组的第4行第4列的元素,而不是一个维数都是3的二维数组
综上所述,建议楼主不要想当然,不要自己发明新语法,建议楼主从头复习基础知识
------解决方案--------------------
[code=C/C++][/code]
#include <stdio.h>
void Daozhi(int b[][3])
{
int i,j,temp;
for(i=0; i<3; i++)
{
for(j=0; j<=i; j++)
{
temp = b[i][j];
b[i][j] = b[j][i];
b[j][i] = temp;
}
}
}
int main()
{
int b[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
Daozhi(b);
int i,j;
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf("%d ",b[i][j]);
putchar(10);
return 0;
}
------解决方案--------------------
字符,你为何定义为float类型,浮点数?
------解决方案--------------------
#include <stdio.h>
int exchange(int a[i][j])
{ for (i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%d ",a[j][i]); //交换位置
return 0; }
int main ()
{ int b[3][3]={{1,2,3},{4,5,6},{7,8,9}};
exchange(b[3][3]);
return 0; }
3*3 二维数组 行列交换位置~ 哪里错了?3Q
------解决方案--------------------
数组作为参数可以看做指向其首元素的指针
二维数组可以看作是一个一维数组,它的每个元素都是一个一维数组,作为参数传递时,它可以看作是一个指向一维数组的指针,这个指针指向这个二维数组的第一个一维数组
void func( int a[10] )和void func( int a[10000] )没有任何区别,它们的参数都是两个指向int的指针a
因此,传递二维数组作为函数参数时,这个二维数组的第二维长度必须在代码里写明
因为本质上,这个参数是“一个指向一维数组的指针,这个一维数组的长度是这个二维数组的第二维”。编译时如果第二维不确定,就不能确定每个元素的偏移量。
此外,定义数组后,数组名可以看做指向其首元素的指针,也只能这样看待,除了定义时的初始化以外,数组不能整体操作
b[3][3]指的是b这个二维数组的第4行第4列的元素,而不是一个维数都是3的二维数组
综上所述,建议楼主不要想当然,不要自己发明新语法,建议楼主从头复习基础知识
------解决方案--------------------
[code=C/C++][/code]
#include <stdio.h>
void Daozhi(int b[][3])
{
int i,j,temp;
for(i=0; i<3; i++)
{
for(j=0; j<=i; j++)
{
temp = b[i][j];
b[i][j] = b[j][i];
b[j][i] = temp;
}
}
}
int main()
{
int b[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
Daozhi(b);
int i,j;
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf("%d ",b[i][j]);
putchar(10);
return 0;
}
------解决方案--------------------
字符,你为何定义为float类型,浮点数?
------解决方案--------------------