请教关于指针数组的问题~~~
main(int argc,char *argv[])
{
while(argc>1)
{++argv;
printf("%s\n",*argv); 此处为何不是argv???输出字符串时可以用指向字符串的指针变量阿,该怎么理解呢?望高手指明,thanks !)
--argc;
}
}
首先你要明白*argv是一个char型的指针数组,也就是说argv[]每个数据成员都是char *
那么现在我们来看看*argv和argv的区别
argv这里存放的是地址(int型)如果是printf("%s\n",argv);那么他输出的是int型的指针
但是,程序将他强制转化为char型,结果输出的将是乱码,
如果改成printf("%d\n",*argv)这样就会输出argv所指向的地址
printf("%s\n",*argv);就好解释了,输出argv指向的地址里的内容
[此贴子已经被作者于2004-06-23 23:26:57编辑过]
Thanks,sir
可以这样认为吗?argv是指针数组的地址,而*argv是指针元素指向数据的地址~~
"可以这样认为吗?argv是指针数组的地址,而*argv是指针元素指向数据的地址~~"
argv是指针数组的首地址,元素地址应该是argv+i来表示,
*argv是首地址中保存的值,
*(argv+i)则是元素地址中保存的值.[此贴子已经被作者于2004-06-25 22:22:14编辑过]