-1 c++ environment argv
我只是不知道如何准确地解释我的问题.所以我在上面写了这个标题.
这是我对一个非常简单的程序的困惑.确切地说,结果.
#include <iostream>
using namespace std;
char * tmp[]={"aaa", "bbb", "ccc"};//there are 3 members
int main(int argc, char* argv[], char* env[])
{
cout << sizeof(env)/sizeof(char*) << endl;
cout << sizeof(tmp)/sizeof(char*) << endl;
}
Run Code Online (Sandbox Code Playgroud)
结果:1 3
我想要的是env []的长度.怎么可能我得到了env []的第1个,而'tmp'(3)的长度是绝对严格的.
env的长度不可能是1,因为我测试了它,数字是47.
为什么会这样?谢谢!
区别在于它tmp是一个数组,而是env一个指针.数组和指针是不同的.这有点令人困惑,因为函数形式参数列表中的数组语法实际上是伪装的指针.
无法通过env使用获取指向的元素数量sizeof.你必须经历它们,直到找到NULL终止列表的元素.
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |