标签:
#include <stdio.h>
/*
声明了一个静态属性的 指针数组---static char *name [];
name[]是一个数组 ,其中的元素是指向char类型的指针,使用数组名 name[0] 就是地址+下标的表示方法
name[0] 表示的是name数组中的第0个元素 也就是第一个字符串的首地址
即name[0] 是name数组中的元素 它里面的内容是一个地址(因为 name是一个指针类型的一维数组)
既然name[0] 其实是一个地址,那么name[0][0] 实质上也是 地址+下标的方法
它的值应该是一个元素 假设第一个字符串 放在名为 S1的一位数组中
那么 name[0] 等价于 &S1 (它是地址), 而 name[0][0] 就是 S1[0] (它是元素) 同理 name[0][3] 应该是s1[3] 也就是e
只不过 S1是我们自己假设的一个名字,程序中并没有定义,所以我们看不到,但是程序在存放字符串的时候是按照一维数组这样分配空间的
*/
static char *name[]= {
"illegal month",
"January","February","March",
"April","May","June","July",
"August","September","October",
"November","December"
};
void main()
{
int i,n;
void choose_month(int);
printf("please enter a month number!\n");
scanf("%d",&n);
if(n<1 || n>12){
printf("ERROR!The wrong month!");
}
else
choose_month(n);
printf("\n");
}
void choose_month(int n)
{
int k,j;
for(k=n,j=0; name[n][j] != ‘\0‘;j++){
printf("%c",name[n][j]);
}
}
标签:
原文地址:http://www.cnblogs.com/cloudddl/p/4831795.html