C语言函数二维数组传递方法
方法一:形参给出第二维的长度。
例如:
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char str[][5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char str[][5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
}
方法二:形参声明为指向数组的指针。
例如:
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char (*str)[5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
}
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char (*str)[5]){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
func(3,str);
return 0;
}
方法三:形参声明为指针的指针。
例如:
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char **str){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
p[0]=&str[0][0];
p[1]=str[1];
p[2]=str[2];
func(3,p);
return 0;
}
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void func(int n,char **str){
int i;
for(i=0; i<n; i++)
printf("\nstr[%d]=%s\n",i,str[i]);
}
int main()
{
char* p[3];
char str[][5]={"abc","def","ghi"};
p[0]=&str[0][0];
p[1]=str[1];
p[2]=str[2];
func(3,p);
return 0;
}
作者:cpoint
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.