当前位置: 首页 > article >正文

C++格式讲解

1. #include <iostream>

作用:

•#include 是 C++ 中的预处理指令,其主要功能是在编译前将指定的头文件内容插入到当前源文件中。而 <iostream> 是 C++ 标准库中的一个头文件,它提供了用于输入输出操作的类和对象,像 cout(用于输出数据到标准输出流,通常是控制台)、cin(用于从标准输入流,通常是键盘读取数据)、cerr(用于输出错误信息)等。

示例说明:

当你在代码中编写 #include <iostream> 时,编译器会在编译前将 <iostream> 头文件的内容包含进来,这样你就可以使用其中定义的输入输出功能了。例如:

#include <iostream>

int main() {
    std::cout << "这是一个输出示例。" << std::endl;
    return 0;
}

在这个例子中,由于包含了 <iostream> 头文件,我们能够使用 std::cout 进行输出操作。

2. using namespace std;

命名空间的概念:

在 C++ 里,命名空间是一种将全局作用域划分为不同部分的机制,其目的是避免不同库或代码模块中出现同名标识符(如变量名、函数名等)引发的命名冲突。标准库中的所有标识符都被定义在 std 命名空间里。

using namespace std; 的作用:

•using namespace std; 语句会将 std 命名空间中的所有标识符引入到当前的全局作用域中,这样在后续代码里使用标准库中的标识符时就无需加上 std:: 前缀了。

示例对比:

不使用 using namespace std; 时:

#include <iostream>

int main() {
    std::cout << "不使用 using namespace std; 的输出。" << std::endl;
    return 0;
}

使用 using namespace std; 后:

#include <iostream>
using namespace std;

int main() {
    cout << "使用 using namespace std; 的输出。" << endl;
    return 0;
}

不过,在大型项目中,过度使用 using namespace std; 可能会导致命名冲突,所以更推荐在需要使用某个具体标识符时,单独使用 using 声明,比如 using std::cout;

3. int main() { return 0; }

main 函数的重要性:

main 函数是 C++ 程序的入口点,程序从 main 函数开始执行。当操作系统启动一个 C++ 程序时,会调用该程序的 main 函数。

函数格式:

  • int 是 main 函数的返回类型,表示函数返回一个整数值。通常返回 0 表示程序正常结束,返回非零值表示程序出现异常。
  • main 是函数名,这是固定的,C++ 程序必须有一个名为 main 的函数。
  • () 表示函数的参数列表,main 函数可以有两种形式的参数列表:int main() 或 int main(int argc, char *argv[]),后者可用于接收命令行参数。
  • { return 0; } 是函数体,这里 return 0; 语句会终止 main 函数的执行,并将返回值 0 传递给操作系统。
示例:
#include <iostream>
using namespace std;

int main() {
    cout << "程序开始执行。" << endl;
    // 可以在这里添加更多的代码逻辑
    cout << "程序即将结束。" << endl;
    return 0;
}

在这个示例中,程序会先输出 “程序开始执行。”,然后可以执行其他代码逻辑,最后输出 “程序即将结束。”,并返回 0 表示正常结束。


http://www.kler.cn/a/569528.html

相关文章:

  • PhyloSuite v1.2.3安装与使用-生信工具049
  • 大模型学习笔记-基于《Deep Dive into LLMs like ChatGPT》
  • 第1章 基础网络和安全工具(网络安全防御实战--蓝军武器库)
  • 谈谈 Node.js 中的模块系统,CommonJS 和 ES Modules 的区别是什么?
  • 不要升级,Flutter Debug 在 iOS 18.4 beta 无法运行,提示 mprotect failed: Permission denied
  • ubuntu:桌面版磁盘合并扩容
  • Stapler: 1靶场渗透测试
  • 中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比
  • LeetCode-81. 搜索旋转排序数组 II
  • Java 大视界 -- Java 大数据中的时间序列数据异常检测算法对比与实践(103)
  • server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)
  • k8s学习记录:环境搭建二(基于Kubeadmin)
  • 【线性代数】3向量
  • Mybatis是如何进行分页的?与Mybatis-plus的区别在哪里?
  • 【服务器】Nginx
  • 【AD】3-10 原理图PDF导出
  • 力扣hot 100之矩阵四题解法总结
  • 盛京开源社区加入 GitCode,书写东北开源生态新篇章
  • javascript实现雪花飘落效果
  • 基于SpringBoot的校园体育场馆(设施)使用管理网站设计与实现现(源码+SQL脚本+LW+部署讲解等)