数组与指针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:28 编辑
char *name[] 声明的是指针数组,它的值是指向各个字符串的指针,name代表是这个指针数组的首地址
因为要引用的是指针数组里的值(指针或者说是地址),所以要使用指向指针的指针(**),这里声明的**p第一次指向的是指针数组的第一项(后面面依次指向):"Follow me"的地址,所以后面的*p的值是"Follow me"(依次类推)
页:
[1]