[英]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");
}
}
運行時壞了。
我不知道
有人為我解釋,並給我有關wchar_t的文檔嗎?
argv [1] +1指向argv [1]字符串中的第二個字符,而argv [2]指向下一個字符串。
首先, 為什么要使用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(表示該指針將指向第二個參數字符串中的第二個字符)
argv[1] + 1
是一個指針,指向在第二個字符argv[1]
而argv[2]
是在所述第三元件(指向字符) argv
。
argv[1] == *(argv + 1)
argv[2] == *(argv + 2)
argv[1] + 1 == *(argv + 1) + 1 != argv[2]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.