对第一个C++程序的解析(C++入门)(hello world)
一、main函数
main函数是程序的入口,C++的程序不管有多少行代码,都是从main函数开始执行的,main函数也被叫做:主函数。main前面的int表示main函数执行结束的时候返回一个整型类型的值,而在main函数的最后写的return 0,正好前后呼应。
总结:
1、main函数是程序的入口;
2、main函数有且仅有一个;
3、一个项目中可以有多个.cpp文件,但是只能有一个main函数(因为程序的入口只能有一个)。
二、字符串
在 C ++中,使用单引号括起来一个字符,表示字符字面值,比如:'1','a'。使用双引号括起来多个字符表示一个字符串,比如:"abcdef","hello world",字符串中可以有一个或者多个字符,"" 表示空字符串。上面代码中的 "hello world!" 就是一个字符串。
三、头文件
前面的代码中,写的 #include <iostream>,就是在包含头文件,头文件的名字叫:iostream,使用 #include <> 的形式进行包含。iostream 文件中的 io (i 是 input ; o 是 output)指的是输入(进入程序的信息,简单理解就是可以给程序输入数据)和输出(从程序中输出的信息,简单理解就是程序会打印数据在屏幕上)。在 C++ 程序中要完成输入和输出的操作会涉及到 iostream 文件中的多个定义,所以就要包含这个头文件的。比如:代码中的 cout 是输出流对象,就是用来完成数据输出的,就需要包含头文件。
四、cin和cout初识
cout << "hello world!" << endl; 这句代码在上面的程序中是最重要的代码,其他所有的代码都是为了编写这句代码。
代码中的 cout 是标准输出流对象 (针对控制台,也就是屏幕),其实还有标准输入流对象 (针对的是键盘) cin。
cout 是告诉程序把后面双引号中的内容打印到标准输出设备 (屏幕) 上,双引号中的内容可以替换的。
cin 和 cout 是全局的流对象,cin 负责输入数据,cout 负责输出数据。
endl 是 C++ 中一个特殊的操作符,效果是换行和刷新缓冲区,使用时必须包含在 iostream 头文件。
<<是流插入运算符,和 cout 配合使用,>> 是流提取运算符,和 cin 配合使用,两者容易混淆,一定要仔细区分,不可混用。
使用 C++ 输入输出更方便,不需要像 printf/scanf 输入输出时那样,需要手动控制格式。C++ 的输入输出可以自动识别变量类型。
五、名字空间
using namespace std; 这句代码的意思是:使用名字空间 std(名字空间也叫命名空间)。
为了理解什么是名字空间,名字空间要解决什么问题,大家先看一下下面的例子:
一个学校里学生可能有重名,假设这个学校有 3 个叫张三的同学,那么每次老师喊张三的时候,其他两个张三就会误会,是不是在喊自己,这就是因为这三个张三其实在同一个范围(空间)内的,就会名字的冲突。但是如果这个学校的学生分为三个班,分别是1班、2班、3班,把三个张三分别安排在不同的班级,那么老师以后喊:1班的张三,那么2班、3班的张三就不会误会了,这是不是就很好的解决了名字冲突的问题。其实这里的本质就是:1. 将名字进行了隔离,2. 在使用名字之前先交待使用哪个班级的名字。
那么回到C++中,在 C++ 中,变量、函数和类都是大量存在的,这些变量、函数和类的名称如果都存在于全局作用域中,可能会导致很多冲突。使用名字空间的目的是对标识符的名称进行隔离,以避免命名冲突或名字污染,namespace 关键字的出现就是针对这种问题的。
std 是 C++ 标准库的名字空间名,C++ 将标准库的定义实现都放到这个命名空间中,当我们需要使用标准库中的内容时,就需要加上:using namespace std;当有了这句代码的时候,表示名字空间 std 中信息都是可见和可用的,比如:cin、cout、endl 等。
当然直接使用 using namespace std; 是一种简单粗暴的做法,直接这样使用,就意味着后续在 std 这个名字空间中的各种定义都可以直接使用,但是我们往往只是使用部分。除此之外名字空间其实也可以这样使用:
代码中的 std::cout 、std::endl的意思就是使用 std 名字空间中的 cout、endl。
如果是在算法竞赛中,很显然,这样写太麻烦了,很耽搁时间,在比赛中时间就是生命啊。
但是如果在企业中做软件开发基本上都这样写的,这样写更好的避免名字冲突的问题。
六、注释
C++ 里主要有两种形式:单行注释 // 和多行注释 /* */
注释是对代码进行解释的文字,放在代码中,但不会被编译。注释是给程序员自己(创作代码的人和阅读代码的人)看的,编译器会忽略注释,基于注释会被编译器忽略的这个特点,在代码中有些代码不再需要的时候可以使用注释的方式屏蔽。
单行注释:指的是当前行不参与编译和运行
多行注释:指的是被包含在内的多行不参与编译和运行。
在 DevC++ 中
注释和取消注释的快捷键:Ctrl + / 。
编译的快捷键是F9。
运行的快捷键是F10。
编译+运行的快捷键是F11。