C语言问题,下面的程序为什么不能把printf("%s\n",month[i])改成printf("%s\n",*month[i]) 10
#include<stdio.h>main(){大神们解释的最好能详细一些inti;char*month[]={"January","February","March",...
#include<stdio.h>
main()
{
大神们解释的最好能详细一些
int i;
char *month[]=
{
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
}; /*给指针数组中的元素赋初值*/
for(i=0;i<12;i++)
printf("%s\n",month[i]); /*输出指针数组中的各元素*/
} 展开
main()
{
大神们解释的最好能详细一些
int i;
char *month[]=
{
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
}; /*给指针数组中的元素赋初值*/
for(i=0;i<12;i++)
printf("%s\n",month[i]); /*输出指针数组中的各元素*/
} 展开
2个回答
展开全部
char *month[]声明的是一个指针数组,数组中每个元素是一个字符指针(指向星期的英文字符串)在调用时month[i]就已经是选择星期字符串的头了,所以printf可以直接打印了。如果在month[i]前面加上*号,那相当于对一个指针再取地址了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-02
展开全部
首先你要明白mouth[i]和*mouth[i]的意思,你要打印字符串,你后面对应的是他的地址里面的东西,而*mouth[i]指向的是他的值,所以你这样打印的话编译没问题,但打开终端后系统就报错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询