第二章——开始学习C++

news2024/11/18 13:49:13

进入C++

首先介绍一个显示消息的简单C++程序(不同于以往的“Hello,world") 

#include<iostream>
int main()
{
	using namespace std;
	cout << "Come up and C++ me some time.";
	cout << endl;
	cout << "You won't regret it." << endl;
	return 0;
}

 

 注意看这里的文件名,是以.cpp 结尾的。这是C++程序常用的方式

在其他环境中可能需要不同的扩展名

 另外C++对大小写敏感,也就是说严格区分大写字母和小写字母。

通过上面这一小段程序来分析一下C++程序的一些知识 

  • main函数 

去掉修饰后,程序的基本结构如下:

int main()
{
	statements;
	return 0;
}

这几行表明有一个名为main()的函数,并描述该函数的行为。

这几行代码构成函数的定义。该定义由两部分组成:第一行 int main()叫函数头,花括号中包含的部分叫函数体

函数头对函数与程序其他部分之间的接口进行了总结;

函数体是指出函数应做什么的计算机指令。

在C++中每条完整的指令都称为语句(语句就是要执行的操作),所有的语句都以分号结束(请一定不要省略分号);

最后一条语句叫做返回语句,它结束该函数;

C++语法要求main()函数的定义以函数头int main()开始。函数头描述了函数与调用它的函数之间的接口。

位于函数名前面的部分叫做函数返回类型,它描述的是函数返回给它的调用函数的信息 ;

函数名后括号中的部分叫做形参列表或参数列表,它描述的是调用函数传递给被调用函数的信息

能不能不使用main()?

通常C++程序必须包含一个名为main()的函数,main()被启动代码调用,而启动代码是由编译器 添加到程序中的,是程序和操作系统之间的桥梁。运行C++程序时通常从main()函数开始执行

当然也存在一些例外情况,这里不予讨论。

  • 程序注释

有两种注释的方法,一种是单行注释,使用双斜杠(//),它的注释效果到行尾就结束了

另外一种是将注释包括在符号/*和*/之间,这种可以跨越多行

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

如果程序需要使用 C++输入或输出工具,就要提供这两行代码:

#include<iostream>
using namespace std;

(可以使用其他代码替换第2行)

预处理器在进行主编译之前对源文件进行处理,上面的程序使用了#include<iostream>编译指令,该编译指令导致预处理器将iostream文件的内容添加到程序中(这是一种典型的预处理器操作,在源文件被编译之前,替换或添加文本)

为什么要将iostream文件的内容添加到程序中?

这涉及程序与外部之间的通信。iostream中的io指的是输入(进入程序的信息)和输出(从程序中发送出去的信息)。实际上iostream文件的内容将取代程序中#include<iostream>这一行,#include编译指令导致iostream文件的内容随源代码文件的内容一起被发送给编译器,编译的下一阶段将使用这个复合文件。

  • 头文件

像iostream这样的文件叫做包含文件(include file)——由于它们被包含在其他文件中,也叫头文件。每一个头文件都支持一组特定的工具

  •  名称空间

名称空间支持是一项C++特性,旨在编写大型程序以及将多个厂商现有的代码组合起来的程序更容易。如果两个已封装好的产品中都包含了一个同名函数,这样在使用的时候编译器不知道要使用哪一个,名称空间让厂商能够将其产品封装在一个叫名称空间的单元中,这样就可以通过名称空间的名称来区分是哪个厂商的产品。

向上面使用了iostream,就要包含 using namespace std这个名称空间来使iostream中的定义对程序可用。

  • 使用cout进行C++输出

如何来显示消息:使用下面的C++语句

cout << "Come up and C++ me some time.";

双引号括起的部分是要打印的消息,在C++中,用双引号括起的一系列字符叫做字符串,因为它是由若干字符串组合而成的。

<<符号表示该语句将把这个字符串发给cout;该符号指出了信息流动的路径。

cout是一个预定义的对象,知道如何显示字符串、数字和单个字符串。

cout的对象属性包括一个插入运算符(<<),它可以将其右侧的信息插入到流中;

 

控制符endl:endl表示一个重要的概念:重起一行。在输出流中插入endl将导致屏幕光标移动到下一行开头。诸如endl等对于cout来说有特殊含义的特殊符号被称为控制符,endl也是在iostream中定义的,且位于名称空间std中。

C++还提供了另一种在输出中换行的方法,\n(\n被视为一个字符,名为换行符)

C++语句

 C++程序是一组函数,而每个函数又是一组语句

声明语句和变量

 要将信息项存储在计算机中,必须指出信息的存储位置和所需的内存空间。方法就是使用声明语句来指出存储类型并提供位置标签

int x;

这条语句提供了两项信息:需要的内存以及该内存单元的名称。

这条语句指出程序需要足够的存储空间来存储一个整数,C++中用int来表示整数,用名称x来标识存储在该内存单元中的值。

 赋值语句

赋值语句将值赋给存储单元。

x=30;

将整数30赋给变量x表示的内存单元; 

符号=叫做赋值运算符,C++可以连续使用赋值运算符 

函数

C++函数分为两种:有返回值的和没有返回值的

使用有返回值的函数 

有返回值的函数将生成一个值,而这个值可赋给变量或在其他表达式中使用。

 被调用的函数函数叫作被调用函数,包含函数调用的函数叫调用函数。圆括号中的值是发送给函数的信息,这被称为传递给函数,以这种方式发送给函数的值叫作参数。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机上无处不在的AI,原来还藏有这么多秘密

目录 一、AI在拍照中的应用 二、AI在日常生活中的应用 三、手机上AI的来自哪&#xff1f; 尽管2023年才过完了一半&#xff0c;但来自AI领域的科技震撼却没有要结束的意思。回顾过往&#xff0c;AI从没像今天这般那样受人瞩目&#xff0c;似乎一夜之间&#xff0c;它就成了新…

速览6月更新|EasyV产研团队带来产品功能优化

EasyV产研团队在6月份为您带来了一系列令人期待的产品功能优化&#xff0c;让数字化管理更加轻松高效&#xff01;话不多说&#xff0c;快来看看都有哪些新变化吧&#xff5e; 速览6月更新内容&#xff1a; 01 平台升级&#xff5c;工作台功能优化 02 模板上新&#xff5c;能…

LeetCode打卡 day58--单调栈

一个人的朝圣 — LeetCode打卡第58天 知识总结 Leetcode 739. 每日温度题目说明代码说明 Leetcode 496. 下一个更大元素 I题目说明代码说明 知识总结 单调栈的应用, 就是需要构建一个单调递增或者单调递减的栈, 去解决下一个大(小)的元素的问题 Leetcode 739. 每日温度 题目链…

网络安全面试题(含答案)

防范常见的 Web 攻击 什么是SQL注入攻击 攻击者在HTTP请求中注入恶意的SQL代码&#xff0c;服务器使用参数构建数据库SQL命令时&#xff0c;恶意SQL被一起构造&#xff0c;并在数据库中执行。 用户登录&#xff0c;输入用户名 lianggzone&#xff0c;密码 ‘ or ‘1’’1 &a…

JavaScript 之【事件循环】机制的深入浅出解读

前言&#xff1a; JavaScript 作为一种单线程的开发语言&#xff0c;在执行的时候会有特定的风格&#xff0c;本章节以 JS 单线程的特点为引入&#xff0c;详细分析讲解了 JS 的事件循环机制 目录 什么是【进程】什么是【线程】浏览器拥有哪些进程和线程【渲染主线程】的工作模…

冒泡排序(思路+代码)

冒泡排序&#xff1a; 变量&#xff1a; flag 如果没有交换过就终止循环就是flase&#xff0c;终止外层循环 第二层循环&#xff1a;n个数比较n-1次 第一层循环&#xff1a; 第一趟&#xff0c;比较n-1次 第二趟&#xff0c;比较n-2次 ... ... 代码&#xff1a; import…

展望“智”造未来|深眸科技以AI+机器视觉,夯基产业新发展格局

近日&#xff0c;2023昆山元宇宙国际装备展在昆山国际会展中心落下帷幕。展会期间&#xff0c;各大展商携新技术、新产品、新概念纷纷亮相&#xff0c;为现场参展观众和嘉宾呈现如梦似幻的元宇宙盛会。 此次展会&#xff0c;深眸科技认识了诸多工业元宇宙领域的优质产品及企业…

Spring Boot3入门快速体验-Developing Your First Spring Boot Application

一、进入Getting Started https://spring.io/ 点击Spring Boot点击LEARN,再点击Reference Doc.&#xff1a; 再点击Getting Started Introducing Spring Boot, System Requirements, Servlet Containers, Installing Spring Boot, and Developing Your First Spring Boot App…

前端Vue组件之仿京东拼多多领取优惠券弹出框popup 可用于电商商品详情领券场景使用

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。通过组件化开发&#xff0c;可以有效实现单…

痞子衡嵌入式:从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制。 我们知道配合 MCU 一起工作的存储器包含 ROM(Flash) 和 RAM 两类&#xff0c;前者主要放 RO 代码和数据&#xff0c;后者放 RW …

文件系统考古4:如何支持多个文件系统

Steve Kleiman 在 1986 年撰写了《Vnodes: An Architecture for Multiple File System Types in Sun UNIX》一文。这篇论文幅较短&#xff0c;大部分内容是数据结构的列举&#xff0c;以及 C 语言结构之间相互指向的图表。 Steve Kleiman是分布式文件系统领域的专家&#xff0c…

selenium 浏览器托管

selenium 浏览器托管&#xff0c;是启动一个浏览器&#xff0c;调试代码&#xff0c;可以运行当前调试代码&#xff0c;不用从启动浏览器开始从头执行 在谷歌浏览器chrome.exe 目录中打开cmd 输入下面目录&#xff0c;启动器浏览器 chrome.exe --remote-debugging-port9222 -…

cesium 控件 风格 白色 亮色 模式 组件变白

在要白色风格的控件的任意父级的class加上cesium-lighter即可, 如图黄色圈出来的

redis实现伪集群

主从复制配置 主从复制时只需要配置从库即可,其默认为主库模式. 打开 redis 客户端登录,使用命令 info replication 查看. 主从复制可以搭建真集群,也可以搭建伪集群 真集群就是有多台主机,每台主机 安装一个 redis.伪集群就是在一台主机上复制多份配置,修改其端口,运行多个…

ja3指纹

问题&#xff1a; 请求失效&#xff0c;带上抓包软件却可以->检测ja3浏览器指纹 方法&#xff0c;python 安装curl_cffi库 pip install curl_cffi 查看浏览器指纹 https://tls.browserleaks.com/json python 原生request 缺少两个指纹 使用curl_cffi之后 可以看到结果…

【计算机网络】第三章 数据链路层(可靠传输)

文章目录 第三章 数据链路层3.4 可靠传输3.4.1 可靠传输的基本概念3.4.2 可靠传输的实现机制——停止-等待协议3.4.2 可靠传输的实现机制——回退N桢协议3.4.3 可靠传输的实现机制——选择重传协议3.4.4 可靠传输的意义 第三章 数据链路层 3.4 可靠传输 可靠传输是指在数据通…

Java中可以使用哪些系统架构?怎样选择?

架构&#xff0c;又名软件架构&#xff0c;是有关软件整体结构与组件的抽象描述&#xff0c;用于指导大型软件系统各个方面的设计。 Java企业级的应用根据业务的复杂程度&#xff0c;通常使用的系统架构有应用架构、垂直应用架构、面向服务的架构(Service-Oriented Architectu…

在外远程访问NAS威联通(QNAP) - 免费内网穿透

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 转载自cpolar极点云文章&#xff1a;无需公网IP&#xff0c;在外远程访问NAS威联通QNAP【内…

1688按关键字搜索工厂数据,商品详情页数据的采集

item_search_factory-按关键字搜索工厂数据 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;​注册​Key获取appsecret和appkey&#xff1b;​secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中…