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

福田附件网站建设公司/2345网址导航应用

福田附件网站建设公司,2345网址导航应用,做的好的网站有哪些,西安公司网站设计文章目录 0 前言:1 进入C1.1 main()函数1.2 C注释1.3 预处理器和iostream1.4 头文件名1.5 名称空间1.6 使用cout进行C输出1.7 C源代码的格式化 2 C语句2.1 声明语句和变量2.2 赋值语句2.3 cout语句 3 其他C语句3.1使用cin3.2 使用cout进行拼接3.3 类简介 4 函数4.1 …

文章目录

  • 0 前言:
  • 1 进入C++
    • 1.1 main()函数
    • 1.2 C++注释
    • 1.3 预处理器和iostream
    • 1.4 头文件名
    • 1.5 名称空间
    • 1.6 使用cout进行C++输出
    • 1.7 C++源代码的格式化
  • 2 C++语句
    • 2.1 声明语句和变量
    • 2.2 赋值语句
    • 2.3 cout语句
  • 3 其他C++语句
    • 3.1使用cin
    • 3.2 使用cout进行拼接
    • 3.3 类简介
  • 4 函数
    • 4.1 有返回值的函数
    • 4.2 函数变体
    • 4.3用户自定义的函数
    • 4.4 用户定义有返回值的函数
    • 4.5 使用using编译指令
  • 5 总结
  • 6 参考

0 前言:

基础知识是对C++特性,历史的一些介绍,并不涉及C++语言的实质。本章对C++语言的基本结构做一下概述,具体的细节,日后会一步步去完善。

1 进入C++

任何一句语言的初始,便是在界面上输出“Hello World!”,进而打开新世界的大门,感觉不对这个世界打声招呼,不好意思开始一样。C++也不例外。

#myfirst.cpp
#include<iostream>
int main(){
using namespace std;
cout <<"Hello World!";
cout << endl;
return 0;
}

之前学过C的会对这个程序既陌生又熟悉,下面来对myfirst.cpp程序的元素进行分析:
1)注释//;
2)预处理编译指令#include;
3)主函数int main();
4)编译指令 using namespace;
5)函数体的部分用{}包围;
6)用cout 显示消息语句;
7)用return 语句终结函数。

1.1 main()函数

myfirst.cpp的程序框架如图:

int main(){
statements;
return 0;
}

最早在学习C语言的时候,就一直在main()函数里面捣腾,所以对main语言,再熟悉不过。int main()叫函数头,{}括起来的部分叫作函数体,在C++中,每条完整的指令都成为语句,用分号来结束。其中最后一条return 0语句叫作返回语句,用它来对函数进行终结。
对main()函数作如下说明:
1)为什么只能是main()函数:
而不是A函数,B函数,C函数。我的解释是:当程序只有一个函数时,这个函数必须只能是main()函数(规定的事,不照办不好使),在运行C++程序时,通常是从main()函数开始执行的,如果没有main(),程序是不完整的,也将无法进行编译。
2)int main代表了什么
来看一下main()的接口描述,该接口从int 开始,main()函数将返回一个整数值,即int规定了函数返回值的类型。int main是一种缩略的写法,完整的写法是int main(void)。
3)语句与分号
语句是要执行的操作,为了理解源代码,编译器需要知道语句如何进行起止。语句之间需要使用语句分隔符,在C++中,使用的是分号对语句进行分隔。

1.2 C++注释

写程序,必须要进行注释,不然无法让别人对你的程序进行理解。C++的注释方式沿袭了C。有两种注释方法。
1)//用来对行进行注释,无法跨行发生作用;
2)/* */的注释,可以跨行进行注释。

1.3 预处理器和iostream

在学习的初期,这样的两行代码基本成了标配:

#include<iostream>
using namespace std;

#include是一种预处理,将iostream中的内容加入到程序中来,程序不仅仅只是main就完全实现功能,需要在源代码编译之前替换或添加文本。

1.4 头文件名

像iostream这样的文件就叫作包含文件(也叫作头文件),C++编译器自带了很多头文件,每个头文件都支持一组特定的工具,让程序在实现功能的前提下轻装上阵。以前的C++头文件都有“.h”的后缀,新式的C++风格没有扩展名。

头文件类型约定示例说明
C++旧式风格以.h结尾iostream.hC++可用
C旧式风格以.h结尾math.hC,C++可用
C++新式风格没有扩展名iostreamC++可用
转换后的C加上前缀c,没有扩展名cmathC++可用

1.5 名称空间

using namespace std;叫作using编译指令,名称空间支持是C++的一个特性。举个例子:用两个已经封装好的产品,里面都包含了一个函数——walk(),编译器不知道这个函数该用哪个产品的,这时候便可以用名称空间来进行标定,比如A公司的函数,A::walk();若是B公司的,则用B::walk()来进行表示。这样程序就可以使用名称空间来区分不同的版本。
就好像是个百宝箱,但是要先using先声明一下,才可以使用。

1.6 使用cout进行C++输出

之前的“Hello world”程序,利用cout进行输出,双引号将字符串框起来,不用管里面是什么,计算机会对他进行输

出的处理。
cout <<"Hello World!";
cout << endl;

"<< "表示该语句将字符串发送给了cout,有一种很形象的说法,这个符号指出了信息流动的路径。从C++的概念上理解这个过程,输出是一个流,即从程序流出的一段字符串。cout对象属性包括一个插入运算符,他可以将右侧的信息插入到流中。与其说程序显示了一条消息,不如说他将一个字符串插入到了输出流中。

补充:
a.cout<<endl,endl被称为控制符,endl也是在iostream中定义的,
b.C语言中的换行符是”\n”,\n叫作换行符,在C++也能使用。

1.7 C++源代码的格式化

  • 1)源代码中的标记与空白

a.在一行代码中不可分割的元素叫作标记;
b.空格,制表符,回车统称为空白;
字符与字符之前需要添加一些空白,适当的空白使得程序可读性更强;不合时宜的空白会使得程序报错。

  • 2)C++源代码的风格

为了提升自己的编码水平,首先需要输入一些“代码是非观“知道哪些是好的,高水平的代码。如下是编程需要遵循的一些原则。
a.一条语句占据一行,不要一条语句占据多行;
b.每个函数都有{},这两个花括号各占一行;
c.为了条理清晰,函数中的语句相对于花括号需要进行缩进;
d.与函数名称相关的圆括号周围没有空白。

2 C++语句

书中给出了carrots.cpp的示例代码。

2.1 声明语句和变量

声明语句,即你在用这个变量的时候,需要确定这个变量是哪种数据类型,以及它自身的变量名称。原则是:使用这个变量前需要先对其进行声明。

2.2 赋值语句

声明这个变量还不够,需要对其进行赋值,才能知道这个变量的具体数值,否则只会是一个没有意义的随机数。“=“是赋值语句。

2.3 cout语句

cout不仅可以打印字符串,也可以打印出变量的值,而不用对变量的数值类型做声明,我觉得这是C++比C更智能的地方。

3 其他C++语句

3.1使用cin

cin是与cout相对应的概念,cout是将字符串插入到数据流中,相对应的,cin是使用运算符>>从输入流中抽取字符。

3.2 使用cout进行拼接

C++的自由格式,将标记间的换行符和空格看作是可以相互替换的。

cout<<"Hello"<<"world";等价于
cout <<"Hello"	
<<"world";

3.3 类简介

类是用户定义的一种数据类型,需要描述它能够表示什么信息,以及可对数据执行哪些操作,后续会详细讲解。

4 函数

程序的实现依赖于函数,所以有必要加深对函数的理解。

4.1 有返回值的函数

顾名思义,这个函数带有一个返回值,而调用这个函数的程序将会获得这个返回值。书中以sqrt()举例,说明调用函数后的具体流程。

4.2 函数变体

2.4.1的sqrt()函数,中规中矩,它既有输入的参数,也拥有返回值。但是函数的参数,可以没有,可以有1个,也可以有很多个,这都是允许的。至于返回值,函数可以有返回值,也可以没有返回值,只是完成相应操作即可。

4.3用户自定义的函数

从图像中可以看出,首先包含了头文件,使用了using编译指令,在main()函数之前声明了函数原型,然后在写函数的实现方式,最后main()函数在实现的过程中调用自定义的函数,过程大抵如此。

4.4 用户定义有返回值的函数

一个函数的特性:
1)有函数头和函数体
2)接受一个参数
3)返回一个值
4)需要一个原型(声明一个原型)
在对传入的参数,做一定的处理之后,return 即可。

4.5 使用using编译指令

在初期需要用到cin,cout,endl,这些都需要先using std的名称空间,当然这是偷懒的做法。例如在头函数包含下,添加语句using namespace std后便可以直接使用cin,cout,endl;若是不添加的话,需要这样表示——

std::cin>>  
std::cout<<
std::endl.

5 总结

这一章通过“HelloWorld.cpp”敲开了C++的大门,了解了预编译处理器,头文件,using编译指令,main函数,其他功能函数,以及C++的6种语句,cin,cout,C++的学习之路刚刚开始。

6 参考

《C++ Primer Plus》

相关文章:

《C++ Primer Plus》《2、开始学习C++》

文章目录 0 前言&#xff1a;1 进入C1.1 main()函数1.2 C注释1.3 预处理器和iostream1.4 头文件名1.5 名称空间1.6 使用cout进行C输出1.7 C源代码的格式化 2 C语句2.1 声明语句和变量2.2 赋值语句2.3 cout语句 3 其他C语句3.1使用cin3.2 使用cout进行拼接3.3 类简介 4 函数4.1 …...

Backtrader 文档学习- Sizers

Backtrader 文档学习- Sizers 1.概述 智能仓位 Strategy提供了交易方法&#xff0c;即&#xff1a;buy&#xff0c;sell和close。看一下buy的定义&#xff1a; def buy(self, dataNone,sizeNone, priceNone, plimitNone,exectypeNone, validNone, tradeid0, **kwargs):注意&…...

基于YOLOv8算法的照片角度分类项目实践

目录 一、任务概述二、YOLOv8算法简介2.1 算法改进2.2 算法特点2.3 网络结构2.4 性能比较 三、工程实践3.1 安装算法框架库ultralytics3.2 库存照片预处理3.2.1 提取所有图片3.2.2 去除冗余的相同照片3.2.3 去除无车辆照片3.2.4 随机提取指定数量的图片 3.3 照片朝向分类3.3.1 …...

go语言进阶篇——面向对象(一)

什么是面向对象 在我们设计代码时&#xff0c;比如写一个算法题或者写一个问题结局办法时&#xff0c;我们常常会使用面向过程的方式来书写代码&#xff0c;面向过程主要指的是以解决问题为中心&#xff0c;按照一步步具体的步骤来编写代码或者调用函数&#xff0c;他在问题规…...

C#,栅栏油漆算法(Painting Fence Algorithm)的源代码

1 刷油漆问题 给定一个有n根柱子和k种颜色的围栏&#xff0c;找出油漆围栏的方法&#xff0c;使最多两个相邻的柱子具有相同的颜色。因为答案可以是大的&#xff0c;所以返回10^97的模。 计算结果&#xff1a; 2 栅栏油漆算法的源程序 using System; namespace Legalsoft.Tr…...

java_error_in_pycharm.hprof文件是什么?能删除吗?

java_error_in_pycharm.hprof文件是什么&#xff1f;能删除吗&#xff1f; &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;hprof格式文件介绍&#x1f333;&#x1f333;java_error_in_pycharm.hprof文件什么情况下能删除&#x1f333;&…...

LeetCode 491 递增序列

给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明: 给定数组的长度不会超过15。 数组中的整数范围是 [-…...

考研/计算机二级数据结构刷题之顺序表

目录 第一题 顺序表的初始化&#xff0c;销毁&#xff0c;头插&#xff0c;尾插&#xff0c;头删&#xff0c;尾删&#xff0c;指定位置插入&#xff0c;指定删除以及打印 第二题 移除元素 题目链接&#xff1a; OJ链接 题目详解&#xff1a;移除元素 第三题&#xff1a;删…...

Git 代码协同的使用方法 for Azure DevOps

1. 登陆Azure 步骤1.1. VS Code&#xff0c;登陆Azure Cloud的Ubuntu环境&#xff0c;如下&#xff1a; 重点: 这里的Azure Cloud的用户名是YourAzureUserName&#xff0c;口令是YourAzurePassword 步骤1.2. 登陆Azure Cloud的Ubuntu环境后&#xff0c;配置Git账户信息&…...

数据库学习笔记2024/2/5

2. SQL 全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了 一套操作关系型数据库统一标准 2.1 SQL通用语法 在学习具体的SQL语句之前&#xff0c;先来了解一下SQL语言的通用语法。 1). SQL语句可以单行或多行书写&…...

PSM-Net根据Stereo图像生成depth图像

一、新建文件夹 在KITTI数据集下新建depth_0目录 二、激活anaconda环境 conda activate pt14py37三、修改submission.py文件 3.1 KITTI数据集路径 parser.add_argument(--datapath, default/home/njust/KITTI_DataSet/00/, helpselect model)3.2 深度图像输出路径 save…...

Mocaverse NFT 概览与数据分析

作者&#xff1a;stellafootprint.network 编译&#xff1a;mingfootprint.network 数据源&#xff1a;Mocaverse NFT Collection Dashboard Mocaverse 是 Animoca Brands 推出的专属 NFT&#xff08;非同质化代币&#xff09;系列&#xff0c;包含 8,888 个独特的 "M…...

SpringBoot之事务源码解析

首先事务是基于aop的&#xff0c;如果不了解aop的&#xff0c;建议先去看下我关于aop的文章: Spring之aop源码解析  先说结论&#xff0c;带着结论看源码。首先&#xff0c;在bean的生命周期中&#xff0c; 执行实例化前置增强&#xff0c;会加载所有切面并放入缓存&#xff0…...

FPGA高端项目:解码索尼IMX327 MIPI相机转USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存UVC 时序USB3.0输出架构FPGA逻辑设计工程源码架构SDK软件工程源…...

基于高通滤波器的ECG信号滤波及心率统计matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 ECG信号简介 4.2 高通滤波器原理 4.3 心率统计 5.完整工程文件 1.课题概述 通过高通滤波器对ECG信号进行滤波&#xff0c;然后再统计其心率。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a…...

springCould中的gateway-从小白开始【9】

目录 1.&#x1f35f;网关是什么 2.&#x1f37f;gateway是什么 3.&#x1f95a;gateway能什么 4.&#x1f32d;核心概念 5.&#x1f9c2;工作流程 6.&#x1f9c8;实例 7.&#x1f953;gateway网关配置的方式 8.&#x1f373;配置动态路由 9.&#x1f9c7;pred…...

邮箱营销软件推荐?企业邮箱群发会限制吗?

邮箱营销平台怎么选择&#xff1f;哪种邮箱适合做外贸邮件群发&#xff1f; 邮箱营销凭借其精准触达、低成本和高回报的特点&#xff0c;依然是许多企业不可或缺的营销手段。该如何选择一款适合自己的工具呢&#xff1f;蜂邮EDM将为您推荐几款优秀的邮箱营销软件&#xff0c;并…...

编译原理实验3——自下而上的SLR1语法分析实现(包含画DFA转换图、建表、查表)

文章目录 实验目的实现流程定义DFA状态实现代码运行结果测试1测试2测试3 总结 实验目的 实现自下而上的SLR1语法分析&#xff0c;画出DFA图 实现流程 定义DFA状态 class DFA:def __init__(self, id_, item_, next_ids_):self.id_ id_ # 编号self.item_ item_ # productio…...

基于tomcat的https(ssl)双向认证

一、背景介绍 某个供应商服务需要部署到海外&#xff0c;如果海外多个地区需要部署多个服务&#xff0c;最好能实现统一登录&#xff0c;这样可以减轻用户的使用负担&#xff08;不用记录一堆密码&#xff09;。由于安全问题&#xff08;可能会泄露用户数据&#xff09;&#x…...

【iOS ARKit】3D人体姿态估计实例

与2D人体姿态检测一样&#xff0c;在ARKit 中&#xff0c;我们不必关心底层的人体骨骼关节点检测算法&#xff0c;也不必自己去调用这些算法&#xff0c;在运行使用 ARBodyTrackingConfiguration 配置的 ARSession 之后&#xff0c;基于摄像头图像的3D人体姿态估计任务也会启动…...

ROS2 CMakeLists.txt 和 package.xml

这里记录一下ROS2中功能包package.xml和CMakeLists.txt的格式。以LIO-SAM的ROS2版本为例&#xff1a; 一&#xff1a;CMakeLists.txt cmake_minimum_required(VERSION 3.5) project(lio_sam)if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)set(CMAKE_BUILD_TYPE…...

代码献瑞,算力有礼!低代码开发工具PaddleX特色产线新春福利来啦

回望2023年&#xff0c;飞桨在开发套件能力基础上&#xff0c;充分结合大模型能力&#xff0c;正式在飞桨星河社区上线发布了低代码开发工具PaddleX&#xff0c;实现AI应用开发效果和效率的大幅提升。产品通过提供图形界面开发模式&#xff0c;将复杂的编程任务简化为简单易用的…...

C语言:操作符详解

创作不易&#xff0c;给个三连吧&#xff01;&#xff01; 一、算术操作符 C语言中为了方便计算&#xff0c;提供了算数操作符&#xff0c;分别是:,-,*,/,% 由于这些操作符都是有两个操作数&#xff08;位于操作符两边&#xff09;&#xff0c;所以这种操作符也叫做双目操作…...

Rust 初体验2

变量类型 Rust 语言的变量数据类型&#xff0c;主要包括整型、浮点型、字符、布尔型、元组、数组、字符串、枚举、结构体和可变变量等。 fn main() { // 整型 let integer: i32 100; println!("整型: {}", integer); // 浮点型 let floating_point: f64 3.1…...

vue-cil的watch函数详解

在Vue中&#xff0c;watch是一个非常有用的API&#xff0c;用于侦听一个响应式引用&#xff08;例如由ref创建&#xff09;或响应式对象&#xff08;由reactive创建&#xff09;的属性&#xff0c;并在值变化时执行回调函数。Vue 3的Composition API引入了这种侦听方式&#xf…...

堆排及时间复杂度分析

箴言: 初始阶段&#xff0c;不需要去纠结那一种更优美&#xff0c;非要找出那一种是最好的&#xff0c;其实能解决问题的就是好办法。 一&#xff0c;常见排序时间复杂度 冒泡快排归并堆排桶排时间O(n^2)O(nlogn)O(nlogn)O(nlogn)kn空间O(1)O(1)O(nlogn)O(1)kn 二&#xff…...

数据结构:双向链表

文章目录 1. 双向带头循环链表的结构2. 相关操作2.1 创建节点2.2 尾插2.3 头插2.4 打印2.5 尾删2.6 头删2.7 查找2.8 指定位置前/后插入2.9 删除指定位置的节点2.10 删除指定位置后的节点2.11 销毁链表 3.顺序表与链表区别 1. 双向带头循环链表的结构 与单链表不同的是&#xf…...

51单片机之数码管显示表白数字篇

朝菌不知晦朔 蟪蛄不知春秋 眼界决定境界 CSDN 请求进入专栏 是否进入《51单片机专栏》? 确定 目录 数码管的简介 数码管引脚定义 数码管的原理图 74HC245 代码实现 静态数码管的显示 动态数码管的显示 数码管实现表白画面 数码管的简介 L…...

代码随想录算法训练营DAY16 | 二叉树 (3)

一、LeetCode 104 二叉树的最大深度 题目链接&#xff1a;104.二叉树的最大深度https://leetcode.cn/problems/maximum-depth-of-binary-tree/ 思路&#xff1a;采用后序遍历递归求解。 class Solution {int ans 0;public int maxDepth(TreeNode root) {if(root null){retur…...

springboot(ssm大学生计算机基础网络教学系统 在线课程系统Java系统

springboot(ssm大学生计算机基础网络教学系统 在线课程系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mys…...