gpt4 book ai didi

c++ - argv[1]+1 和 argv[2] 有什么区别

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:20 26 4
gpt4 key购买 nike

我知道这个问题很基础,我也是新手,所以请帮我解决这个问题:

我有这个代码:

int wmain(int argc, wchar_t *argv[])
{
if (*argv[1] == L'-' && (!_wcsicmp(L"install", argv[1]+1)))
{
wprintf(L"You pressed: -install !");
}
else
{
wprintf(L"Unknown");
}
}

它工作正常,但如果我替换为:

int wmain(int argc, wchar_t *argv[])
{
if (*argv[1] == L'-' && (!_wcsicmp(L"install", argv[2])))
{
wprintf(L"You pressed: -install !");
}
else
{
wprintf(L"Unknown");
}
}

运行时中断。

我不知道

  • 为什么要使用 argv[1]+1
  • argv[1]+1 和 argv[2] 有什么区别(我在上面用过)。

谁能给我解释一下,并给我关于 wchar_t 的文档???

最佳答案

首先,为什么要使用 argv[1]+1:--> _wcsicmp 需要 POINTER,所以你需要传递:argv[1] + 1 或 argv[2]

其次,argv[1]+1 和 argv[2] 有什么区别(我在上面用过)。 :-->你看到 wmain 的第二个参数了吗:wchar_t *argv[]? - 这意味着 POINTER 到 ARRAY(相同的 POINTER 到 POINTER)。

每个参数用空格隔开。因此,argv[1] 是指向第二个参数的指针,argv[2] 是指向第三个参数的指针。并且,argv[1]+1 将指针中的地址增加 1(意味着该指针将指向第二个参数字符串中的第二个字符)

关于c++ - argv[1]+1 和 argv[2] 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20040227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com