指针规范

时间:2014-02-24 23:17:38

标签: c pointers

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

#include <stdio.h>
int main(int argc, char **argv){
    printf("%s",argv[1]);
}

让我说我编译并运行文件:./test blah blah

据我了解,argv[1]指向blah的指针;如果我需要用blah访问这些字母,我该怎么办呢?

我尝试过:printf("%s\n", argv[1][1])char *pointer = argv[1],但都没有效果。

我误解了一个概念吗?或者我没有把编码部分弄好。

1 个答案:

答案 0 :(得分:5)

argv[1][1]的值类型为char(因为argv的类型为char **)所以您应该使用%c (unsigned character) printf format

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