带参数的main()
int main(int argc, char** argv){
//Expressions...
return 0;
}
假如一个C++文件有如上的main()函数,在编译过后我们就能通过命令行的方式运行它。
一个命令行由以下结构组成
-
命令 参数1 参数2 参数3 参数n…
命令指的就是编译过后的exe文件名字,之后向文件内部的main()传递参数。
命令行将以上命令整理成一个字符串数组,也就是字符指针数组传给main()函数,同时计算出这个数组的大小。
所以,argc指的是命令行中就几个元素(包括命令),argv指出所有参数和命令的位置。
#include
我们知道include会将头文件包括进来,但是头文件名字却有不同的格式。
C++旧式风格要求头文件后缀命为 .h 比如——iostream.h,但新式风格则将后缀名去掉了。
注意,如果你去掉了.h的后缀,不仅代表着形式的变化,还代表着你可以包含名称空间。
为什么会这样?
假设你同时包含了两个库
#include<A.h>
#include<B.h>
但是问题来了,两个库中有相同的函数 int C(),这样编译器就会不知道究竟该使用那个C函数进行编译。
为了解决这个问题,C++推出新标准——命名空间namespace
在编写文件时,将函数的实现放在namespace中,这样在引用各大头文件相同的函数的时候,我们可以通过在函数名称前面加上命名空间来区别函数。
#include<A>
#include<B>
int main(){
A::c();
B::c();
//...
return 0;
}
但是这样头文件格式就与之前的不同,所以新版本头文件命去掉了.h。在包括头文件的时候,函数不再全局变量中,需要使用using标识符使用命名空间才行。