码迷,mamicode.com
首页 > 编程语言 > 详细

指针数组个人理解

时间:2015-09-23 13:21:29      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

#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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!