最初接触C或者C++的初学者必须会写HelloWorld。现在我们据着手开始写它吧!
C语言版:
#include <stdio.h>
int main( void )
{
printf( "Hello World!" );
return 0;
}
C++版:
#include <iostream>
int main( void )
{
cout << "Hello World!" << endl;
return 0;
}
我们先看C语言版的
1. main函数可以不写返回值,比如:void main(){} 甚至 main(){}。 不过不推荐前面两种形式。原因在于,main函数的返回值为0表示执行完整个main函数没有问题,成功返回。同时在main函数的上一层调用将会取到main函数的返回值,进行一些系统的处理(这里暂时不详解)。看似没必要的东西通常被我们忽略。作为
程序员的我们,我想应该在做事的时
候要有追求完美的观念。因此main函数建议写上返回值。
2. main函数可以有参数。比如:int main( int _Argc, char** _Argv, char ** _Env ); _Argc 是指命令行输入参数的个数,_Argv存储了所有的命令行参数。_Env表示环境相关。同时也可以定义成:int main( int _Argc, char** _Argv ); 比如:
你的程序是hello.exe。传命令行参数:
hello.exe Shiqi Yu
那么,_Argc的值是 3,_Argv[0]是"hello.exe",_Argv[1]是"Shiqi",_Argv[2]是"Yu"。 _Env[0]就是你当前管理员账户所拥有的文件夹路径,可以调试的时候观察(在后面的文章里专门讲调试技巧相关)。这里有指针及
字符串数组。以后再给大家深入解释。
3. 返回0表示程序正常退出。
4. 引用stdio.h是为了调用printf函数。此函数声明在这个
头文件里。
5. 这个问题留给大家思考。
6. 这个问题也留给大家思考。
7. 可以替换,我们在
编译程序的时候,编译器会自动去查找你所引用的这些头文件。<>表示优先从系统的库里面查找此头文件,未找到再到用户代码目录里查找。""刚好相反。
再看C++版的1. #include <iostream>为什么没有.h?
C++跟C的语法相差不大,两个
版本有的问题同时有效。
1. 在VC6以后的C++版本,VC的库目录里增加了一些新的头文件,这些头文件没有扩展名(分类一多,为了区分(各人认为))。因此就没有.h了。
2. 这里是
名字空间的引用,名字空间也就是为了防止在不同的CPP或者H中
发现同名字的函数,为了区分,就在这些函数或者类等外面加上一个名字空间以示区分,假如没有这句,下面的语句将得这样写:
std::cout << "Hello World!" << std::endl; 假如在另外一个名字空间masefee里面同样有同名字的函数,我们就得写:masefee::cout << "Hello World!" << masefee::endl;了。
3. 这个问题在解决了上面C语言版的问题6自然会解答了。
4.cout其实是ostream,也就是输出流。<<就是
重载运算符,通过传参数的形式将需要输出的内容传入<<运算符里。然后进行输出。
5.endl就是回车符。换行用。