我有一个以上的疑问所以请耐心等待.有人能告诉我为什么这段代码失败了吗?
#include<stdio.h>
void main(int argc,char **argv) /*assume program called with arguments aaa bbb ccc*/
{
char **list={"aaa","bbb","ccc"};
printf("%s",argv[1]);/*prints aaa*/
printf("%s",list[1]); /*fails*/
}
Run Code Online (Sandbox Code Playgroud)
我认为它与指针内容的指针有关,我不明白.所以我试过:
#include<stdio.h>
void main()
{
char **list={"aaa","bbb","ccc"};
char *ptr;
ptr=list;
printf("%s",ptr);/*this prints the first string aaa*/
/* My second question is how do i increment the value
of ptr so that it points to the second string bbb*/
}
Run Code Online (Sandbox Code Playgroud)
是什么区别char *list[]和char **list在什么场合都可以使用这两个理想是什么?令我困惑的另一件事是argv特别?当我传递char **list给另一个函数,假设它让我以我能用的方式访问内容时argv,它也失败了.
我意识到过去曾经问过类似的问题,但我似乎无法找到我需要的东西.若有,有人可以发布相关链接.