帮我看一下这两个函数的printf里的输出字符串有什么不同!

infooffice 2003-12-08 09:18:00
void print(char *name[],int n){
int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}

main(int argc,char *argv[]){
……
++argv;
println("%s",*argv);
}

为什么main函数里的指针数组就得加*号呢?
...全文
26 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
glacierrr 2003-12-08
  • 打赏
  • 举报
回复
main的char *argv[]实际上就是char **argv,写成数组的形式完全是为了方便理解和阅读,没有其他任何意思。
dylang 2003-12-08
  • 打赏
  • 举报
回复
指针数组
BrightseaChen 2003-12-08
  • 打赏
  • 举报
回复
同意!!
barryfat 2003-12-08
  • 打赏
  • 举报
回复
这是指针数组,不加星号他存放的是指向字符串的指针地址,而不是指向字符串地址!~
zhangfjj 2003-12-08
  • 打赏
  • 举报
回复
main函数里的指针数组就得加*号
------------------
printf("%s\n",name[i]);,这里是*(name+i)还不是可以要星号,但这里用的是下标运算符

println("%s",*argv); 这里是*(argv+0),也可以写成argv[0]
skywarship 2003-12-08
  • 打赏
  • 举报
回复
argv是二重指针,当然要加*

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧