argv[1]+1 和 argv[2] 有什么区别
What difference between argv[1]+1 and argv[2]
我知道这个问题是基本的,我也是新手,所以请帮我解决这个问题:
我有这个代码:
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需要指针,所以你需要 pass:argv[1] + 1 或 argv[2]
第二argv[1]+1 和 argv[2] 有什么区别(我在上面用过)。-->你看到 wmain 的第二个参数:wchar_t *argv[] 吗?- 这是指向数组的指针(与指向指针的指针相同)。
每个参数用空格分隔。因此,argv[1] 是指向第二个参数的指针,argv[2] 是指向第三个参数的指针。并且,argv[1]+1 将指针中的地址增加 1(平均而言,该指针将指向第二个参数字符串中的第二个字符)
argv[1]+1 指向 argv[1] 字符串中的第二个字符,而 argv[2] 指向下一个字符串。
argv[1] + 1
是指向argv[1]
中第二个字符的指针,而argv[2]
是 argv
中的第三个元素(指向字符的指针)。
argv[1] == *(argv + 1)
argv[2] == *(argv + 2)
argv[1] + 1 == *(argv + 1) + 1 != argv[2]
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 有什么方法可以遍历结构吗
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 方法 argv[] SWIG C++ / Python 中的错误,会发生什么?
- 命令行上的输入在什么时候解析为 node.js 中的 process.argv
- argv[1]+1 和 argv[2] 有什么区别
- 什么是++argv?&令人困惑的编译器错误
- GTEST_API_ int main(int argc, char **argv){}中的GTEST_API_是什么?
- argc和argv的目的是什么?
- 什么是char* const argv[]?