th_name(int n)
{
/*
* 初始化指针数组, 指针数组中的元素指向一个字符串
*/
static char *name[] = {
Illegal month,
January, Febrary, March,
April, May, June,
July, August, September,
October, November, December
};
printf(sizeof(name) = %d
, sizeof(name));
//返回一个指针, 这个指针指向字符串
return (n < 1 || n > 12) name[0] : name[n];
}
int main(int argc, char **argv)
{
printf(month 2 is %s
, month_name(2));
return 0;
}
执行结果 :
[root@ip28 pointer]# gcc montn_name.c
[root@ip28 pointer]# ./a.out
sizeof(name) = 104
month 2 is Febrary
二维数组示例程序 :
/*************************************************************************
> File Name: montn_name.c
> Author: octopus
> Mail: octopus_work.163.com
> Created Time: Wed 19 Mar 2014 12:58:48 AM CST
************************************************************************/
#include
char *month_name(int n)
{
/*
* 初始化指针数组, 指针数组中的元素指向一个字符串
*/
static char name[][20] = {
Illegal month,
January, Febrary, March,
April, May, June,
July, August, September,
October, November, December
};
printf(sizeof(name) = %d
, sizeof(name));
//返回一个指针, 这个指针指向字符串
return (n < 1 || n > 12) name[0] : name[n];
}
int main(int argc, char **argv)
{
printf(month 2 is %s
, month_name(2));
return 0;
}
执行结果 :
[root@ip28 pointer]# gcc month_array.c
[root@ip28 pointer]# ./a.out
sizeof(name) = 260
month 2 is Febrary
对比 : 二维数组 占用了 260 字节内存, 指针数组占用了 104字节的内存;
.
作者 : 万境绝尘
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21402047
.