c语言关于指针数组的一个小问题

题目是:用0~6分别表示星期日至星期六,当输入其中的任意一个数字时,请输出对应的星期名。参考答案如下:#include<stdio.h>voidmain(){char*w... 题目是:用0~6分别表示星期日至星期六,当输入其中的任意一个数字时,请输出对应的星期名。
参考答案如下:
#include<stdio.h>
void main(){
char *weekname[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int week;
printf("input week No:");
scanf("%d",&week);
if(week>=0&&week<7)
printf("week No:%d-->%s\n",week,weekname[week]); //weekname[]数组是指针数组,输出时为什么不加星号呢---> printf("week No:%d-->%s\n",week,*weekname[week]);
else
printf("input error!\n");
}
这个程序运行没有问题,但里面注释的那一行代码我有点疑问,如果是 *weekname[week] 运行时就有问题了。望高手为我说明一下啊
展开
 我来答
百度网友7a39b72
2013-08-30
知道答主
回答量:14
采纳率:0%
帮助的人:10.8万
展开全部
你好!首先你要知道指针数组的每一个元素都表示一个指针,而指针其实就是一个地址,字符串的输入输出所用的参数都是地址,比如说:
char str[20];
scanf("%s",str);
printf("%s",str);
这里的str就是一个地址,等同于你的程序中的指针数组的一个元素,而用了*后,系统将找不到字符串的首地址,从而有错。
全手打,请采纳!
TableDI
2024-07-18 广告
当我们谈到Python与Excel的拆分时,通常指的是使用Python的库来读取Excel文件中的数据,然后根据某种逻辑(如按行、按列、按特定值等)将数据拆分成多个部分或输出到新的Excel文件中。上海悉息信息科技有限公司在处理这类任务时,... 点击进入详情页
本回答由TableDI提供
夕心木18
2013-08-30 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:32.4万
展开全部
char *weekname[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

是定义一个指针数组,该数组每个元素是一个指向字符串常量的指针,输出时是按%s格式输出,只需提供字符串常量的首地址即可,即数组元素的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zq757797769
2013-08-30 · TA获得超过201个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:159万
展开全部
字符数组,输出的时候是不需要*的,如果你加上*的话只会输出数组的第一个元素,不如sunday,这个的话,只会输出s
更多追问追答
追问
加上*没有输出s,而是调试时出现了错误需要中断调试
追答
*weekname这样的话做输出的时候输出的是

weekname[week]这个代表的是一个字符串对吧,*weekname[week]输出的应该是数组第week个字符串的第一个字符,不如说week=0;那么*weekname[week]应该输出s

*weekname这个样子的话就代表的是该数组的第一个元素,weekname就代表数组第一个元素的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式