我很忙1991 发表于 2014-11-7 15:43:47

数组与指针1

#include <stdio.h>
int main( )
{
char *name[]={"Follow me", "BASIC", "Great Wall", "FORTRAN", “Computer design”} ;
char **p ;
int i ;
for(i=0; i<5 ; i++)
{
   p=name+i ;
   prinf("%s\n",*p ) ;
}
}

问题:(1)想问一下char name[] 这样定义,不是制定了,name不是已经代表指针了吗,为什么还要加一个这样的*符号。
         (2) *p是指向变量值,那么**p是指向那里啊!好晕啊!大神求指教。。。。。。:cry

风之残月 发表于 2014-11-8 20:26:47

本帖最后由 风之残月 于 2014-11-8 20:28 编辑

char *name[] 声明的是指针数组,它的值是指向各个字符串的指针,name代表是这个指针数组的首地址
因为要引用的是指针数组里的值(指针或者说是地址),所以要使用指向指针的指针(**),这里声明的**p第一次指向的是指针数组的第一项(后面面依次指向):"Follow me"的地址,所以后面的*p的值是"Follow me"(依次类推)
页: [1]
查看完整版本: 数组与指针1