C - 分段错误和 argv,argc



我做了一个打印输入的代码:

  int main(int argc, char *argv[])
{
    printf("%c", *argv[1]);
    return 0;
}

当我输入 ababcdefac*cf 之类的东西时,它工作得很好,但是当我输入 **$$ 时,它返回 2,当我输入 $a$k 等时,它会生成分割错误。我想知道为什么它不打印出我输入的字母。

假设你运行的是Linux或其他类型的UNIX风格,$a指的是环境变量a。它由您的 shell 扩展,并且由于您未将其设置为值,因此它变为空。

要获取文字字符串$a,您必须转义您的参数 - 根据您使用的 shell,您可以尝试单引号或双引号或使用反斜杠转义$

我假设你使用Linux/Unix/MacOS。不要运行程序,请尝试 echo $$ 或 echo $1。这些系统变量将扩展到其他字符串(或根本不展开)。因此,如果没有扩展文本或分割错误,您将获得扩展文本或分割错误。

相关内容

  • 没有找到相关文章

最新更新