1.如何声明及定义指针字符串,及指针数组字符串.
2.并且在函数中如何调用.
谢谢啦.
1.如何声明及定义指针字符串,及指针数组字符串.
2.并且在函数中如何调用.
谢谢啦.
2006-06-20 21:16
#include<stdio.h>
void disp(char **p,int n)
{
int i;
printf("\nnow we are in disp()...\n");
for(i=0;i<n;i++)
puts(*p++);
}
main()
{
char *p1="一二三四五";
char *p2="上山打老虎";
char *pp[2];
printf("now we are in main()...\n");
puts(p1);puts(p2);
pp[0]=p1;
pp[1]=p2;
disp(pp,2);
}

2006-06-20 21:58
2006-06-21 14:59
解释的不够清楚.能解释更清晰一些吗?谢谢啦.
2006-06-21 20:14
解释的不够清楚.能解释更清晰一些吗?谢谢啦.
看书去!

2006-06-21 20:40
为什么打印字符串时 puts(*p++)而不是puts(*(*p++)) 按逻辑来讲 这样只是打印出了字符串的地址
而且既然是指针字符数组,那么pp[0]=&p1;才对嘛
2006-06-21 20:48
为什么打印字符串时 puts(*p++)而不是puts(*(*p++)) 按逻辑来讲 这样只是打印出了字符串的地址而且既然是指针字符数组,那么pp[0]=&p1;才对嘛

2006-06-21 21:04
2006-06-21 22:49
#include<stdio.h>
void disp(char **p,int n)
{
int i;
printf("\nnow we are in disp()...\n");
for(i=0;i<n;i++)
puts(*p++);
}
main()
{
char *p1="一二三四五";
char *p2="上山打老虎";
char *pp[2];
printf("now we are in main()...\n");
puts(p1);puts(p2);
pp[0]=p1;
pp[1]=p2;
disp(pp,2);
}
我的理解:*p1,*p2就是指针字符串,指向的分别是"一二三四五"和"上山打老虎",两个字符串并在一起就成了字符串数组,所以指向字符串数组就要用两个星号“**”,在“for(i=0;i<n;i++)puts(*p++);”中,i=0时字符串数组指针指向第一个字符串“一二三四五”,i=1时指向“上山打老虎”。
个人理解,不知正确否,请指点。
2006-06-22 19:09
2006-06-22 20:47