C 指针规格

C 指针规格,c,pointers,C,Pointers,我是C新手,有几个基本问题;我读了一些教程,看了几个问题,但由于一些措辞,我仍然有点困惑 #include <stdio.h> int main(int argc, char **argv){ printf("%s",argv[1]); } 假设我编译并运行文件:./test等等 据我理解,argv[1]指向一个指向blah的指针;如果我需要访问这些无聊的信件,我应该怎么做呢 我尝试了:printf%s\n、argv[1][1]和char*pointer=argv[1],但

我是C新手,有几个基本问题;我读了一些教程,看了几个问题,但由于一些措辞,我仍然有点困惑

#include <stdio.h>
int main(int argc, char **argv){
    printf("%s",argv[1]);
}
假设我编译并运行文件:./test等等

据我理解,argv[1]指向一个指向blah的指针;如果我需要访问这些无聊的信件,我应该怎么做呢

我尝试了:printf%s\n、argv[1][1]和char*pointer=argv[1],但都不起作用

我误解了一个概念吗?或者我只是没有正确地编码部分。

argv[1][1]处的值具有类型char,因为argv具有类型char**,所以您应该使用:


哦,argv[1]是第一个参数,因为argv[0]包含命令。因此,argv[1][0]是第一个参数的第一个字符。@BraveNewCurrency:yup,argv[0][0]将是,、argv[0][1]是/,等等。假设我需要创建一个指向字符串结尾的指针,我该怎么做?我认为我需要对0 biyte进行线性搜索,但我不确定如何实现it@NickGong:您可以将指针设置为字符串的第一个字符,然后将其递增,直到它指向0或\0.int mainchar**argv{->int mainit argc,char**argv{至少这是运行时调用mainOh ya时的假设,这就是我在代码中的内容,我只是在这里缩短了它。
printf("%c\n", argv[1][0]); // => b
printf("%c\n", argv[1][1]); // => l
printf("%c\n", argv[1][2]); // => a
printf("%c\n", argv[1][3]); // => h