您的位置:首页 > 其它

【指针】输入序号,输出对应的单词(释疑)

2010-03-23 13:24 274 查看
/*
#include<stdio.h>//要求:用户输入1、2、3、4中的任一个数,就要输出对应的单词
void main()
{
char *p;
int x;
char a[4][7]={"first","second","third","four"};
p=a[0];//为什么用p=a出错。
printf("please input a number(such as 1 2 3 4):/n");
scanf("%d",&x);
printf("%s/n",*(a+x-1));//这里用*(a+x-1)就能输出对应结果,并且用(a+x-1)也能得出对应结果,为什么用*(p+x-1)就得不出对应的结果。怎么用到p.
}*/

#include<stdio.h>//要求:用户输入1、2、3、4中的任一个数,就要输出对应的单词
void main()
{
char *p;
int x;
char a[4][7]={"first","second","third","four"};

p=a[0];//为什么用p=a出错?
//答:a是一个指向二维数组的指针,a[0]是一维数组,给p赋值只能用后者

printf("please input a number(such as 1 2 3 4):/n");
scanf("%d",&x);

//	printf("%c/n",*(p+x-1));//注意到是%c,因为*p只代表一个字符

printf("%s/n",a+x-1);//可以

//	printf("%s/n",*(a+x-1));//也可以

//这里用*(a+x-1)就能输出对应结果,并且用(a+x-1)也能得出对应结果,为什么
//答:printf("%s/n",*(a+x-1));里,%s对应的可以是字符串本身*(a+x-1),也可以是其首地址a+x-1

//为什么用*(p+x-1)就得不出对应的结果。
//答:*(p+x-1)只代表一个字符,如果你想用p输出想要的结果,比如"second"字符串,可以用循环的办法依次输出各个字符

//怎么用到p.
//答:想输出第几个,就用p指向它,比如上面的p=a[0];,你设置一个变量k,让p=a[k]就可以了,
//但此时*p只是单个字符,不是字符串,用上面的办法挨个输出,直到输出你需要的字符串
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐