lyh33897 发表于 2021-2-15 17:49:52

字符串数组

1.字符串数组中a是那种类型?
2.字符串数组的输出该如何表示?在printf函数中为什么是a,它和*a有什么区别和联系?

#include<stdio.h>
int main()
{
        char*a[]=
        {
                "January\n",
                "February\n",
                "March\n",
                "April\n",
                "May\n",
                "June\n",
                "July\n",
                "August\n",
                "September\n",
                "October\n",
                "November\n",
                "December\n",
        } ;
        printf("请输入月份:");
        int i;
        scanf("%d",&i) ;
        printf("%s\n",a);
        return 0;
}

wp231957 发表于 2021-2-17 08:51:33

char*a[]这是声明一个字符串数组,顾名思义这是一个数组,每个元素是由字符串组成
那毫无疑问a就是第一个元素a就是第二个元素

do8do8do8 发表于 2021-2-18 16:13:26

1.字符串数组中a是那种类型?
答:这是一个数组,数组的元素是指针,指针里存放的是字符串的地址,合起来讲就是字符串指针数组。所以a是一个指针,指向char形。
2.字符串数组的输出该如何表示?在printf函数中为什么是a,它和*a有什么区别和联系?
答:字符串数组的输出跟二维数组输出类似,写个循环逐个 printf("%s\n",a[i);就可以了
for(i=0;i<sizeof(a)/sizeof(a);i++)
    printf("%s",a);
a表示第i个字符串的地址(从0开始算起)。*a表示第i个字符串(从0开始算起)
页: [1]
查看完整版本: 字符串数组