首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组解决思路

2013-03-29 
数组如何将二维数组当做参数,传入函数中填写数组,及形参该如何写?char (*)[32]这又表示的什么?言简意赅的

数组
如何将二维数组当做参数,传入函数中填写数组,及形参该如何写?char (*)[32]这又表示的什么?

言简意赅的别把数组和指针的定义贴到这!
[解决办法]
楼主看一下.
http://bbs.csdn.net/topics/60157289
[解决办法]
看看main函数的形参就知道了
int _tmain(int argc, _TCHAR* argv[])
第二个参数相当于就是char**
[解决办法]


#include <stdio.h>

void foo(char a[])
{
    // TODO ...
}

void foo1(char *a) // 数组做参数时,char a[] == char* a
{
    // TODO ...
}

int main(void)
{
    char a[] = "abcdef";
    char* b = "ghjklmn";
    foo(a);
    foo(b);

    foo1(a);
    foo1(b);
    return 0;
}


[解决办法]
给你举个例子吧

#include <stdio.h>

void function(char (*str)[10])
{
int i;
for (i = 0; i < 5; ++i)
{
printf("%s ", str + i);
}
putchar('\n');
}

int main(int argc, char ** argv)
{
char (*str)[10];//声明一个二维数组指针
char other[10] = "other";
//str = other;//cannot convert from 'char [10]' to 'char (*)[10]'
char ch[5][10] = {"this","is","a","string"};
str = ch;//(1)

int i;
for (i = 0; i < 5; ++i)
{
printf("%s ", str + i);
}
putchar('\n');

function(str);
function(ch);//效果相当于执行了(1)
return 0;
}

热点排行