这是我在该网站上的第一个问题,尽管我已经来这里参考已有一段时间了。我知道 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;
}
根据我在互联网搜索中看到的所有其他程序,该程序应该打印出两个字符串,即。程序的名称和命令行参数。控制台窗口显示
0010418c 001048d6
我相信这些是指向 argv[0] 和 argv[1] 的指针。我唯一的命令行参数是“nanddumpgood.bin”,它进入 argv[1] 并在调试时将鼠标悬停在 argv[] 数组上时正确显示字符串。
这是怎么回事?我究竟做错了什么?我了解,在特殊情况下,数组会衰减为指针?这是没有的情况吗?