这是我在网站上的第一个问题,尽管我已经来这里参考了很长一段时间.我知道argv [0]存储程序的名称,其余的命令行争论存储在剩余的argv [k]槽中.我也理解std :: cout将字符指针视为空终止字符串并将字符串输出.以下是我的计划.
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << argv[0] << " ";
cout << argv[1] ;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据我在网络搜索中看到的所有其他程序,该程序应该打印两个字符串即.程序名称和命令行争论.控制台窗口显示
0010418c 001048d6
我相信这些是指向argv [0]和argv [1]的指针.我唯一的命令行争论是"nanddumpgood.bin",它在argv [1]中并且如果我在调试时鼠标悬停在argv []数组上则正确显示字符串.
这发生了吗?我究竟做错了什么?我明白,在特殊情况下,数组会衰减到指针吗?这是不是吗?