c - 指针规范

标签 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] 但都不起作用。

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

最佳答案

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

关于c - 指针规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001244/

相关文章:

c - 在线C项目锻炼?

C++ 从函数返回双指针....怎么了?

c - 我可以在哪里放置数组下标?

c - 在c中从txt中检索文本

c - 访问结构中声明的指针的内容

C++:访问虚拟方法

C/C++ 中的 C++ 引用和常量指针

python - 指向 c_int 的 ctypes 指针与 c_int 数组

c++ - 如何告诉TCL和TK在本地搜索默认 `.tcl`语言文件?

c - FFMPEG:将视频的一部分写入新文件时 AV 不同步