思考HelloWorld

C语言版:

#include <stdio.h>int main( void ){     printf( "Hello World!" );     return 0;}

思考问题:

  1. main函数是否一定得有返回值?

  2. main函数是否可以有参数?

  3. 为什么是return 0?

  4. 为什么要引用stdio.h头文件? 自己是否可以写头文件?

  5. printf是否可以有多个参数?假如能,为什么能有多个? 是怎么实现的?我们可否自己写一个?

  6. printf是通过什么形式将"Hello World!"字符串传入的?

  7. include 可否替换成#include "stdio.h" ?

回答:

  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]就是你当前管理员账户所拥有的文件夹路径,可以调试的时候观察(在后面的文章里专门讲调试技巧相关)。这里有指针及字符串数组。以后再给大家深入解释。

  1. 返回0表示程序正常退出。

  2. 引用stdio.h是为了调用printf函数。此函数声明在这个头文件里。

  3. 留下思考。。。

  4. 留下思考。。。

  5. 可以替换,我们在编译程序的时候,编译器会自动去查找你所引用的这些头文件。<>表示优先从系统的库里面查找此头文件,未找到再到用户代码目录里查找。""刚好相反。

C++版:

#include <iostream>using namespace std;int main( void ){     cout << "Hello World!" << endl;     return 0;}

思考问题:

1. #include 为什么没有.h?

2. using namespace std;这句为什么?作用是什么?

3. 这里的Hello World!字符串又是怎么传入函数的?还是并没有传入函数?

4. cout在这里起什么作用? <<又起什么作用?

5. endl起什么作用?

回答:

  1. 在VC6以后的C++版本,VC的库目录里增加了一些新的头文件,这些头文件没有扩展名(分类一多,为了区分(各人认为))。因此就没有.h了。

  2. 这里是名字空间的引用,名字空间也就是为了防止在不同的CPP或者H中发现同名字的函数,为了区分,就在这些函数或者类等外面加上一个名字空间以示区分,假如没有这句,下面的语句将得这样写:

std::cout << "Hello World!" << std::endl; 假如在另外一个名字空间masefee里面同样有同名字的函数,我们就得写:masefee::cout << "Hello World!" << masefee::endl;了。

  1. 这个问题在解决了上面C语言版的问题6自然会解答了。

4.cout其实是ostream,也就是输出流。<<就是重载运算符,通过传参数的形式将需要输出的内容传入<<运算符里。然后进行输出。

5.endl就是回车符。换行用。
原文链接: https://www.cnblogs.com/st_zhang/archive/2010/08/25/1808311.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/14308

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午1:50
下一篇 2023年2月7日 下午1:52

相关推荐