YunNotesydzhang.blog.chinaunix.net
zyd_cu
@HUST张友东 work@taobao zyd_com@126.com
全部博文(251)
2014年(10)
2013年(20)
2012年(22)
2011年(74)
2010年(98)
2009年(27)
NXZ2018
no_error
CodeLZY
feng1991
silence0
lemon小
upon_88
镇水铁牛
knull
WYN_123
guoyan11
shanck
yangzhid
xinfan
Sea05973
zma1111
leoncapt
yttzoey
分类:
2009-08-11 20:49:35
#include <stdio.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 str[][5] = {"abc", "def", "ghi"}; func(3, str); return 0;}
方法2:形参声明为指向数组的指针
#include <stdio.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 str[][5] = {"abc", "def", "ghi"}; func(3, str); return 0;}
方法3:形参声明为指针的指针,实参传递指针数组
#include <stdio.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;}
方法4:形参声明为指向指针的指针,并对参数进行强制转换
#include <stdio.h>void func(int n, char **str, int m){ int i; char (*p)[m] = (char (*)[m])str; for (i = 0; i < n; i++) { printf("\nstr[%d] = %s\n", i, p[i]); }}int main(){ char str[3][5] = {"abc", "def", "ghi"}; func(3, (char**)str, 5); return 0;}
上一篇:编译内核遇到的问题
下一篇:版本控制细节
登录 注册