目录

一、了解入门程序

代码功能解析

包含头文件

使用命名空间

主函数

二、注释

 单行注释

多行注释


        同志们,我又来辣!上一篇介绍了如何安装VS2026,并且成功运行输出了“hello world”,下面我们就要了解一下那段代码是何意味,并且学习一下什么是注释。

#include<iostream>
using namespace std;
int main(){
    cout<<"hello world"<<endl;
    return 0;
}

一、了解入门程序

代码功能解析

       这段代码是一个经典的入门程序,功能是在屏幕上输出"hello world"字符串并换行。整个代码程序结构可以简单分为三部分:包含头文件、使用命名空间和主函数。

包含头文件

#include<iostream>

这就是第一部分:包含头文件。

首先解释一下头文件是干啥的,哪怕现在不理解,之后用着用着也会明白。

      头文件就像是程序的“说明书”,可以告诉在代码运行之前就告诉电脑(其实是编译器)我这里面有那些东西,之后用的时候直接用就行,就不需要我自己重新写了。

#include 相当于告诉编译器:我要用某个工具箱里的工具。

这个工具箱可以是系统给你的,用法:#include + 尖括号包裹文件名,例: #include<文件名>

这个工具箱也可以是自己写的,用法:#include + 双引号包裹文件名,例: #include"文件名"

所以,#include<iostream>  在这里表示我要使用 iostream 文件里面的东西。

       iostream 标准输入输出流库文件,听名字就知道里面的东西是关于输入和输出的,代码运行之后能在控制台打印显示 “hello world” ,就是用的这个文件里面提供的 cout  对象实现屏幕输出功能。同时像让程序能够获取键盘输入的数据,需要使用 iostream 里面提供的  cin  对象实现获取输入 。

使用命名空间

using namespace std;

这是第二部分:使用命名空间。

首先解释一下命名空间是干啥的,它主要是用来解决命名冲突的。

        说直白点就是避免重名问题,咱们现在使用的都是别人写好的函数和类,包括上面提到的 cout  和 cin  ,都是别人写好的,你直接拿来用,但万一他们在写不同函数和类的时候,使用了一样的名字,那我们不炸了吗,使用就有了命名空间来解决重名问题。

像文件夹管理文件一样,将相关代码归类到特定命名空间,例如:std 是标准库的命名空间。

于是我们写代码时,对于任何不是自己写的东西都要在前面加上对应的命名空间。

格式: 命名空间  双冒号  函数/类   例如:std :: cout  和  std :: endl

       但这样实在是太麻烦了,于是有了这样偷懒的语句,using 使用 ,namespace 命名空间,std 标准库的命名空间,所以  using namespace std;   我们也知道了它是啥意思了,声明使用标准命名空间,避免每次调用库函数时重复写  std ::  前缀。例如可直接使用 cout 而非 std :: cout 。

主函数

int main(){
    cout<<"hello world"<<endl;
    return 0;
}

        函数的知识以后会同一讲,这里大家就记住 main() 函数是主函数,int 是它的返回类型。花括号{}里面包裹的内容是函数体,就是要执行的具体代码, 我们目前写的所有代码都是放在函数体里面。

        主函数很特别,它是整个项目的入口,程序执行的入口点,所以一个项目里面只能有一个main函数。如果整个项目里面有两个main,那电脑(其实是编译器)这个傻蛋就不知道改往哪儿走了。

       接下来就是  整个代码具体执行的内容   cout << "hello world" << endl;    return 0;

       刚才在包含头文件里面说了,cout 是实现屏幕输出的功能,而 endl 是换行并刷新缓冲区,如果你写很多条 cout << "hello world" << endl;  会发现它每行输出完 hello world 之后就会从下一行开始输出,而不是堆在一行,这就是 endl 的功能。

       同时,使用命名空间里面也说了,通过使用 std 标准库的命名空间,避免每次调用库函数时重复写  std ::  前缀,可直接使用 cout、endl 而非 std :: cout 、std :: endl

       "hello world" 就是我们要输出的具体内容,因为 hello world 是一个很长字符串,所以要使用引号括起来,告诉电脑(其实是编译器),这是一个字符串,也可以把引号里面的 hello world 替换成任意的字符串,你换成啥,程序运行之后输出啥。

现在我们就明白了 cout、"hello world"、endl 的含义,现在就差 <<   return 0; 需要学习了。

        <<  是流插入运算符,通过 <<  就可以将后面的东西拼给前面,所以 cout  里面就存了这些内容:hello world 外加一个换行,然后通过流对象 cout  将字符串输出到控制台。

        return 0;   return啥意思,不就是英语“返回”吗,所以这句话的意思就是返回 0。很懵逼是不是,为啥要写这句话呀? 这个时候就要看我在这一部分开头提到的 “大家就记住 main() 函数是主函数,int 是它的返回类型”  它既然有返回的类型,那是不是我就得给他返回一个东西呀,而且还得是跟他类型一致的才行,int 相当于 integer 的缩写,所以要给它返回一个整数。函数返回值为0,表示程序正常结束。非零值通常表示错误代码,这就是 return 0;的含义。当然,如果以后自己写函数,那返回类型和具体 return 啥东西就是自己说了算的。

        整段代码读下来,就只有花括号{}里面的内容是我们自己可以改变的,其他的都是固定的格式,所以每次写C++代码时,起手就是

#include<iostream>
using namespace std;
int main(){
    
    return 0;
}

注意:C++的语句后面都要加分号表示这条语句的结束,分号不能缺少     例:return 0;

扩展:

输出机制:可以通过<<运算符链式调用实现多内容输出

cout << "Score: " << 100 << endl;

endl 的特殊性在于它不仅是换行符,还会立即刷新输出缓冲区。等价于:

cout << '\n' << flush;

二、注释

        注释,简单来说就是给你写的代码进行解释,让你自己和别人都能明白你写的是啥。所以,注释是给人看的,不是给电脑看的,电脑是不识别注释的。

        注释分为:单行注释  和  多行注释。

 单行注释

   以双斜杠 // 开头,从 // 到行尾的内容会被编译器忽略。

#include<iostream>
using namespace std;
int main(){
    //这是单行注释
    //下面这句代码的意思是 输出hello world
    cout << "hello world" << endl;    //我要学习C++
    
    //cout << "你好,世界" << endl;
    return 0;
}

   对于每一行注释,前面都要加上  //  ,这样电脑就会跳过这句话。

   那有人就想到,这样一行一行加 // 太麻烦了,能不能一下注释好多行。

   有的兄弟,有的!下面就介绍一下多行注释。

多行注释

   以 /* 开头,以 */ 结尾,之间的所有内容均为注释。可以跨行进行说明或屏蔽代码。

/* 这是一个多行注释,
   可以跨越多行,
   常用于函数或复杂逻辑的说明 */
#include<iostream>
using namespace std;
int main(){
    /*
    cout << "hello world" << endl;    
    cout << "你好,世界" << endl;
    */
    return 0;
}
 

         这就是注释的用法,这玩意儿十分常用,毕竟当你写项目时,可能过个两三天就忘了自己当时咋写的,写的啥,所以及时写注释是个很好的习惯。

        OK,这就是C++学习路线其一:入门篇的第二篇文章,让大家了解入门程序,在控制台上显示 hello world 的全部细节,并学习了一下注释。

        对于我的每篇文章,我都会将我的学习路线放在结尾,目前进度为:第一阶段 C++基本语法入门篇的第二篇。

        同志们,下一篇文章再见,我尽量会保持一周写三篇文章,记录我的学习路线,对于C++的学习我打算按照下面的路线去学,大家有比我学的快的也可以按照我的路线去看看自己接下来学什么。

       网课推荐:黑马程序员,同时给大家推荐一位大佬,b站搜索“恋恋风辰zack”,这个大佬的视频也是我一直在跟着学习的,讲的很好。

学习路线:主攻高性能开发,如果大家像学习游戏引擎或嵌入式,可以自己设计一下学习路线

第一阶段: C++基本语法,Git入门

第二阶段:熟练STL,类,智能指针,模板,函数绑定等等

第三阶段:Linux基础,多线程, 网络编程,设计模式

第四阶段:gRPC,MySQL,Redis,JS,QT,消息队列,手写各种池子(线程池、内存池)

第五阶段:进军高性能方向,开始学习 一致性哈希,分布式锁,Raft算法,网络优化、内存优化、并发优化

第六阶段:真正实现工业级项目,在每一阶段的学习过程中都要写一些练手的小项目,可以在GitHub上找一下,积少成多,最终可以实现工业级项目
 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐