你能帮我理解以下代码:

标签 c loops if-statement arguments

*argv[1] 是一种遍历数组所有元素的方法

#include <unistd.h>

int     main(char **argv)
{

    while (*argv[1])
    {
        if (*argv[1] == 'a')
        {
            write(1, "a", 1);
            break;
        }
        argv[1]++;
    }
}

argv[1]++ 怎么样:是给地址加一

最佳答案

假设您指的是标准:

int main(int argc, char **argv)

argv[1] 是指向程序第一个命令行参数的指针。 *argv[1] 是参数的第一个字符,与 argv[1][0] 相同。

递增argv[1]使其指向该参数的下一个字符。

当到达字符串的空终止符时,while (*argv[1]) 测试将失败。

因此,此代码循环遍历第一个参数中的字符,并在参数中找到 a 字符时打印 a 。如果你运行:

./a.out aardvark

它将打印

aaa

关于你能帮我理解以下代码:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59398964/

相关文章:

c - 在 Windows 7 x64 上安装 GCC Make

python - Python中依赖于前一个循环的任意数量的嵌套循环

c - 如何使用 FILE* 参数对 C 函数进行单元测试

c - recv 停止或不返回所有数据(C 代码)

javascript - 在javascript中抓取和显示xml格式的字符串

java - Java 中使用循环的 if 语句和搜索字符串数组

sql - 我的中频条件在哪里?

java - 使用 3 个 boolean 值的 If 语句

将检查具有相同类的所有按钮的值的 jQuery 条件语句

C编程: character in scanf