一个C指针数组的问题
我这样申明一个指针数组
#define YC_BUF_SIZE 3
static char *YCName[ YC_BUF_SIZE ] = {
"iA","iB","iC" };
然后我把这个声明的指针数组传递给一个函数,那我该如何声明这个函数的行参; 而且我再通过这个函数把这个指针数组传递给另外一个函数,在这个函数的里面我如何调用这个指针数组?谢谢了!
问题点数:20、回复次数:7Top
1 楼lbing7(向青润老大学习!!!)回复于 2006-03-07 16:36:12 得分 1
二级指针Top
2 楼jinjiajie(leorio)回复于 2006-03-07 16:36:37 得分 0
#define YC_BUF_SIZE 3
static char *YCName[ YC_BUF_SIZE ] = {
"iA","iB","iC" };
....
把星号去了
#define YC_BUF_SIZE 3
static char YCName[ YC_BUF_SIZE ] = {
"iA","iB","iC" };
要访问这个数组就直接用YCName这个地址...请搞清楚地址,别乱用指针...Top
3 楼piaochen_2002(执子之手,与子偕老!)回复于 2006-03-07 16:36:38 得分 6
#define YC_BUF_SIZE 3
static char *YCName[ YC_BUF_SIZE ] = {"iA","iB","iC" };
void Fun(char *name[],unsigned short Len )
{
for(int i=0;i<Len;++i)
{
printf("%s\n",name[i]);
}
}
void main(void)
{
Fun(YCName,3);
}
Top
4 楼jinjiajie(leorio)回复于 2006-03-07 16:37:39 得分 1
啊...看错了,sorryTop
5 楼piaochen_2002(执子之手,与子偕老!)回复于 2006-03-07 16:37:46 得分 2
是可以用指针数组的,不过LZ的static 就没有必要了...上面的代码是可以运行的.Top
6 楼jinjiajie(leorio)回复于 2006-03-07 16:38:52 得分 2
同楼上的Top
7 楼qybao(阿宝)回复于 2006-03-07 16:47:13 得分 8
for example
#define YC_BUF_SIZE 3
char *YCName[ YC_BUF_SIZE ] = {"iA","iB","iC" };
void Fun2(char *name[],unsigned short Len ) //or char** name
{
for(int i=0;i<Len;++i)
{
printf("%s\n",name[i]);
}
}
void Fun1(char *name[],unsigned short Len ) //or char** name
{
Fun2(name, Len);
}
void main(void)
{
Fun1(YCName,3);
}
Top




