黑马程序员技术交流社区
标题:
C关于如何将一个二维数组的一行传入一个自定义函数的问题
[打印本页]
作者:
Sniper_YJ
时间:
2014-5-15 10:11
标题:
C关于如何将一个二维数组的一行传入一个自定义函数的问题
就比如定义一个二维数组char a[10][10],下面一个函数fun()需要用到这个二维函数的第一行,也就是a[0][0]~a[0][9]的数值,那么这个函数fun()括号里面应该怎样书写才能实现这个功能。求c的大神能帮助下
作者:
ios风痕
时间:
2014-5-15 12:26
在fun()函数括号里只需写数组名就行,至于你要用到的数组char a[10][10]的第一行,在fun()函数里可以定义一个指针变量,利用一个for循环进行调用
for(i=0,j=0;j<=10;j++)
{
//在这里可以输入具体的操作
}
复制代码
作者:
Sniper_YJ
时间:
2014-5-15 12:35
可能你没理解到我的意思
请看下面一段代码
#include<stdio.h>
void fun(//不知道写什么)//比如这个函数是用来对一个字符串数组进行排序的
{
//进行排序
}
int main()
{
char a[10][10];//定义一个二维数组
for(int i=0;i<10;i++)
{
scanf("%s",a[i]);//二维数组的每一行储存一个字符串
}
fun(//这里不知道写什么);
}
复制代码
意思就是说我想传一个字符串进去,很明显一个字符串就是这个二维数组的一行,不知道你是否明白我的意思
作者:
奇迹
时间:
2014-5-15 13:11
数组就是指针,直接传就好了,因为数组就是个指向他的第一个元素,很so easy的,还有什么不懂的可以回复我,我会给你详细的解答
作者:
⒈心只霸占沵
时间:
2014-5-19 14:11
本帖最后由 ⒈心只霸占沵 于 2014-5-19 14:14 编辑
#include <stdio.h>
int main()
{
char a[10][10];
fun(a[0]);
}
//数组传的都是指针
void fun(char a1[])
{
//操作
}
复制代码
作者:
Dr_。Zeor`
时间:
2014-5-19 20:13
另一种书写方式
#include <QCoreApplication>
void func(char s[2][2])
{
for(int i=0;i<2;++i)
for(int j=0;j<2;++j)
{
printf("%c",s[i][j]);
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char s[2][2]={{'0','1'},{'3','4'}};
func(s);
return a.exec();
}
复制代码
作者:
葬花桥
时间:
2014-5-20 11:13
在你的函数的参数列表中可以这样写一个参数, char (*p)[]
它就可以存放二维数组的每一行,比如 p[i] 就是第 i 行
原理就是二维数组中的每一行都是一维数组,用指针p指向二维数组中的第一个一维数组的首地址
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2