1. c/c++在main函数之前和之后会做什么?
底层汇编代码:
int stack; //初始化栈;
int heap; //初始化堆
open stdin; //打开标准输入
open stdout; //打开标准输出
open stder; //打开错误流
...
push argv; //把参数argv压入栈
push argc; //把参数argc压入栈;
call main; //调用main函数
...
destroy heap; //销毁内存
close stdin; //关闭标准输入
close stdout; //关闭标准输入
close stderr; //关闭错误流
...
call __exit;
2. main()函数的参数
c++标准允许主函数main()没有参数,或有两个参数。
int main(int argc, char* argv[])
//或者
int main(int argc, char** argv)
argc 表示传入main函数的参数个数,也可理解为数组argv的元素个数。
argv表述传入main函数的指针数组,为char**类型,也可以为是一个argv是一个数组,数组中的每一个元素都是一个字符串。
argv的第一个元素argv[0]是程序名称,并且包含程序的完整路径。所以,argc至少为1。
#include "stdafx.h"
#include <gtest\gtest.h>
#include <iostream>
u