august 发表于 2007-9-5 23:37:08

二级指针与指针数组


char *str[]={"abc d"};
char **p;
p=str;
为什么不能printf("%s",p);将其打印出来,只能通过for(i=0;i<5;i++) printf("%c",*(*p+i));

coolpay64 发表于 2007-9-6 08:52:02

printf中的 %s要求輸入的是string格式,也就是一直提著的char* 格式,p是char**,一個要求char*,一個輸入char**,掛掉是必然
*(*p+i) 這個其實相當混亂
其意義跟*(p+i),p變成char*(輸入Index等同降級),char* + int ->char*(因為指標是long),再dereference變成char,和%c要求的char吻合
页: [1]
查看完整版本: 二级指针与指针数组