【C++ Primer Plus】2.1 进入C++

代码示例

#include <iostream>					  //  a preprocessor directive  预处理器指令
int main () 						 // function header
{									// start of function bodyusing  namespace std;			// make definitions visiblecout << "hello!";				// message/statementcout << endl;					// start a new linecout << "how are you?"			// more outputcin.get();						// keep windows openingreturn 0;						// terminate main()
}   								// end of function body

2.1.1 main()函数

int main()   			// 函数头  function heading
{						// 后面部分是函数体statements			// 每条完整的指令都称为语句,语句均以分好结束return 0;
}

函数头:描述的是函数与调用它的函数之间的接口

  • 函数名前的称为函数返回类型,描述从函数返回给调用它的函数的信息。
  • 函数名后()中的部分叫做形参列表(参数列表parameter list),形参可为空,用于描述从调用函数传递给被调用函数的信息;
  • int main() 的含义:main()函数可以给调用它的函数返回一个整数值,且不从调用它的函数
    那里获得任何信息;
  • main 函数:在c++程序中,通常从main函数开始执行,如果没有main ,程序将不完整,编译器将指出未定义main函数。

语句:要执行的操作
分号:终止符(terminator),告知编译器语句结束,是语句的组成部分

2.1.2 C++ 注释

注释:程序员为读者提供的说明,有助于他人或自己理解代码。

// 注释方法1,推荐/*注释方法2
*/

2.1.3 C++预处理器和iostream文件

#include 预处理器编译指令

#include <iostream>	  //该编译指令导致预处理器将iostream文件的内容添加到程序中。

该编译指令导致iostream文件的内容源代码文件的内容一起被发送给编译器。实际上,iostream文件的内容将取代程序中的代码行 #include<iostream>。原始文件没有被修改,而是将源代码文件和iostream组合成一个复合文件,编译的下一阶段将使用该文件。

2.1.4 头文件名

头文件(包含文件)——被包含在文件起始处
c语言头文件扩展名.h
c++ 头文件无扩展名 iostream
转换后的C 加上前缀c,没有扩展名cmath

2.1.5 名称空间

using  namespace std; // using 编译指令

在协同工作时,如果同一函数再不同协作方有不同的版本吗,可以使用using 编译指令指定说明采用哪一方的函数版本

Microflop::wanda ("go dancing?");     // use Microflop namespace version
Piscine::wanda("a fish named Desire"); // use Piscine namespace version

c++中类、函数和变量都被放置在命名空间std中。即cout 实际上是std::cout;如果在开始时省略using namespace std; 语句,后文使用时,可以采用一下形式,如std::cout << std::endl;std::cout << "hello.";这个using编译指令使得std名称空间中的所有名称都可用。

部分使用时,

using std::cout; 		// make cout available
using std::endl;  		// make endl available	
using std::cin; 		// make cin available

2.1.6 使用cout进行C++输出

cout << "hello!";	

双引号括起的部分是要打印的字符串;
<<符号表示该语句将把这个字符串发送给cout;该符号指出了信息流动的路径。
cout是一个预定义对象
在这里插入图片描述

cout << endl;

在输出流中插入endl将导致屏幕光标移到下一行开头。
endl 也是在头文件iostream中定义的,且位于名称空间std中。

\n  //换行符

对比
endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);
而使用“\n”不能提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示(光标移到下一行)。

2.1.7 C++ 源代码风格

遵循合理的风格,程序将更便于阅读。

  • 每条语句占一行
  • 每个函数都由一个开始花括号开始,一个花括号结束,这两个花括号各占一行
  • 函数中的语句都相对于花括号进行缩进
  • 与函数名称相关的圆括号周围没有空白

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/414471.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript依赖注入框架Typedi的使用、原理、源码解读

简介 typedi是一个基于TS的装饰器和reflect-metadata的依赖注入轻量级框架&#xff0c;使用简单易懂&#xff0c;方便拓展。 使用typedi的前提是安装reflect-metadata&#xff0c;并在项目的入口文件的第一行中声明import ‘reflect-metadata’&#xff0c;这样就会在原生的R…

优思学院|初入职质量工程师必须要考CQE?你真正要做的是...

最近收到有一位质量工程师的人士提问&#xff0c;他是初入职的新人&#xff0c;是否需要考质量工程师证&#xff0c;很多人以为需要&#xff0c;因为做会计的有会计证&#xff0c;要开车的人要有驾驶证&#xff0c;所以质量工程师就需要有质量工程师证&#xff0c;做但其实这并…

soso移动营业大厅(纯后端+MySQL数据库+JDBC)

一、项目需求 中国移动,中国联通,中国电信是国内3大通信运营商,每个运营商都提供了不同的品牌套餐来应对不同的用户群,比如北京移动主要有全球通,神州行,动感地带等3大品牌套餐,每种套餐的内容和费用不同,嗖嗖移动是一个假定的通信运营商,提供了话痨套餐,网虫套餐,超人套餐,各…

【C语言基础考研向】06运算符与表达式

文章目录 1.运算符分类 2.算术运算符及表达式 3.关系运算符与关系表达式 4.c语言运算级优先级表 课后习题自测 1.运算符分类 语言提供了13种类型的运算符,如下所示. (1)算术运算符( - * / %) . (2)关系运算符(>< >< l) . (3)逻辑运算符(l && ll) . (4)位…

【SpringCloud】微服务框架后端部署详细过程记录20240119

前言&#xff1a;前两天公司接到客户提供的一个微服务框架&#xff0c;导师让我在本地部署验证一下该框架的可用性&#xff0c;借此机会记录一下微服务项目的一个基本部署流程&#xff0c;仅供学习参考&#xff0c;如有不足还请指正&#xff01; 文件结构 提供的压缩文件共包含…

NVIDIA 大模型 RAG 分享笔记

文章目录 大语言模型在垂直领域落地的三个挑战&#xff1a;什么是 RAG以及为什么能解决大预言模型所带来的的这三个问题RAG 不是一项技术而是整体的 Pipeline非参数化 &#xff1a;数据库部分加载到数据库中检索阶段 提升检索效率的技术检索前&#xff1a;对query做处理use que…

开源项目汇总:机器学习前沿探索 | 开源专题 No.60

facebookresearch/xformers Stars: 6.0k License: NOASSERTION xFormers 是一个加速 Transformer 研究的工具包&#xff0c;主要功能如下&#xff1a; 可自定义构建模块&#xff1a;无需样板代码即可使用的独立/可定制化构建模块。这些组件与领域无关&#xff0c;被视觉、NLP…

MS2358——96KHz、24bit 音频 ADC

产品简述 MS2358 是带有采样速率 8kHz-96kHz 的立体声音频模数 转换器&#xff0c;适合于面向消费者的专业音频系统。 MS2358 通过使用增强型双位 Δ - ∑ 技术来实现其高精度 的特点。 MS2358 支持单端的模拟输入&#xff0c;所以不需要外部器 件&#xff0c;非常适…

基于docker创建nginx容器

docker一键安装可以参考我这个博客&#xff1a;一键安装docker 1.创建基础容器 docker run -p280:280 --name nginx -d nginx创建挂载到容器的宿主机文件夹 mkdir -p /home/000nginx-ebrms-ftp/html mkdir -p /home/000nginx-ebrms-ftp/logs mkdir -p /home/000nginx-ebrms-f…

C++ Linux动态库的编译和调用

一、C动态库编译 采用g编译C动态库&#xff0c;命令如下&#xff1a; g -fPIC -shared -o 动态库名 cpp文件名1.1 关于fPIC选项 首先了解动态库的载入时重定位。 一般linux的可执行文件都是elf格式&#xff08;一种二进制文件格式&#xff09;&#xff0c;在可执行文件的头部包…

C++进阶(五)二叉搜索树

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、二叉搜索树概念二、二叉搜索树操作三、二叉搜索树的实现四、二叉搜索树的应用五、二叉搜索…

Maxwell介绍

一、介绍 介绍&#xff1a;它读取MySQL binlog并将数据更改作为JSON写入Kafka、Kinesis和其他流媒体平台&#xff08;目前支持&#xff1a;kafka、RabbitMQ、Redis、file、Kinesis、Nats、Google Cloud Pub/Sub、Google Cloud Bigquery、SNS&#xff09; 版本&#xff1a;从v1.…