【引子】C++从介绍到HelloWorld

C++从介绍到HelloWorld

  • 一、C++的介绍
    • 1. 简介
    • 2. 应用场景
    • 3. C++的标准![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e3efb0f207f647729b92c0b5bcd4b330.png)
    • 4. C++的运行过程
  • 二、Visual Studio的安装
    • 1. 什么是Visual Studio
    • 2. Visual Studio的安装
  • 三、完成HelloWorld
    • 1. 新建项目
    • 2. 新建cpp文件
    • 3. 编写代码
    • 4. 代码解读
      • 4.1 #include<iostream>
      • 4.2 主函数 main()
      • 4.3 语句
      • 4.4 返回值
    • 附加:注释
    • 5. 代码改进

一、C++的介绍

1. 简介

C++ 是一门非常经典的高级编程语言。顾名思义,C++可以看做是C语言的增强版,在C的基础上扩展了更多的功能;最主要的扩展,就是面向对象和泛型编程。

2. 应用场景

C++完全兼容C,具有C面向硬件的特性;此外还拥有面向对象和泛型编程的扩展。所以C++编写的程序运行效率高、功能强大,特别适合用在系统级应用场景上。所以我们经常可以看到,偏向底层、系统的开发,一般用的语言都是C++。常用的场景如:底层硬件和系统编程、嵌入式开发、游戏开发。

3. C++的标准在这里插入图片描述

  1. ANSI(American National Standards Institute,美国国家标准局)在制定了C语言标准之后,在90年代专门设了一个委员会来制定C++的标准,并和ISO(国际标准化组织)一起创建了联合组织ANSI/ISO。1998年,第一个C++国际标准终于出炉了;这个标准在2003年又做了一次技术修订。因此我们一般所说的C++标准,第一版往往被叫做C++ 98/03。
  2. 跟大多数语言一样,C++也在不停地发展更新。ISO在2011年批准了C++新标准,这可以认为是C++的2.0版本,一般被叫做C++ 11。
  3. C ++ 11新增了很多新特性,极大地扩展了C++的语言表达能力。此后在2014年和2017年,又出了两个新版本C++标准,一般叫做C++ 14和C++ 17,不过这两个版本增加的内容并不多;真正意义上的下一个大版本是2020年的C++ 20,它再一次给C++带来了大量的新特性。

4. C++的运行过程

在这里插入图片描述

  1. 首先编写C++程序,保存到文件中,这就是我们的源代码;
  2. 编译。用C++编译器将源代码编译成机器语言,得到的这个结果叫做目标代码;
  3. 链接。C/C++程序一般都会用到库(library),这些库是已经实现好的目标代码,可以实现特定的功能(比如在屏幕上把信息打印显示出来)。这时我们就需要把之前编译好的目标代码,和所用到的库里的目标代码,组合成一个真正能运行的机器代码。这个过程叫做“链接”,得到的结果叫做可执行代码;
  4. 运行。可执行代码就是可以直接运行的程序,运行它就可以执行我们想要的操作了。

二、Visual Studio的安装

1. 什么是Visual Studio

写C++程序其实很简单,直接用记事本写好代码,然后用一个编译器做编译运行就可以了;不过这意味这我们得自己保证语法正确,严重影响开发效率。所以实际应用中我们一般都会使用功能更强大的工具,除了提供编译器外,还可以给我们做语法检查和提醒,方便我们调试程序——这就是所谓的“集成开发环境”(IDE)。Windows系统环境下,最普遍、最好用的IDE就是Visual Studio了,这是微软官方的开发工具,功能非常强大。

2. Visual Studio的安装

  1. 打开 Visual Studio的中文版官方网站链接,点击“下载Visual Studio”按钮,选择最新的免费社区版Community 2022。然后双击运行安装程序VisualStudioSetup.exe。
  2. 在安装引导程序中,选择自己需要的组件。我们直接选择“使用C++的桌面开发”即可,这个选项会打包安装Windows下C++开发的所有组件。注意不需要选“通用Windows平台开发”,这个还包含了.net平台,是针对C#开发的。
    在这里插入图片描述
  3. 等待安装过程结束,登录微软账号过程可以跳过,随后根据自己的喜好选择相关的界面,启动Visual Studio。

三、完成HelloWorld

1. 新建项目

在这里插入图片描述

  1. Visual Studio启动之后,我们首先应该创建一个项目。所谓“项目”,就是一个工作任务,需要实现相应的需求。点击“创建新项目”。
  2. 直接选择一个空项目,指定项目名称和保存位置。
  3. 这此处还有一个“解决方案”(Solution)的概念,其实就是一组有关联的项目,共同合作解决一个需求。

2. 新建cpp文件

在这里插入图片描述
在打开的解决方案界面里,右键点击“源文件”文件夹图标,添加一个新建项。我们要添加的是一个C++文件,命名为HelloWorld,后缀名是.cpp

3. 编写代码

输出HelloWorld的代码如下:
① 使用命名空间

#include<iostream>

int main()
{
	std::cout << "Hello World!" << std::endl;
}

② 未使用命名空间

#include<iostream>
using namespace std

int main()
{
	cout << "Hello World!" << endl;
}

在这里插入图片描述
我们可以点击工具栏的按钮【本地Windows调试】 (快捷键F5),用一个本地的调试器来“调试”代码;所谓的调试,就是查看具体的运行过程,我们可以用它来解决出现的问题。当然也可以点它旁边的【三角按钮】,这是不调试直接运行(快捷键Ctrl+F5)。运行后的结果如下:
在这里插入图片描述
界面上弹出了一个窗口,显示出了我们想要的信息“Hello World!”。后面还跟着一串信息,这是调试控制台告诉我们,程序已经执行完毕正常退出了。随便一个键,就可以关闭这个窗口。

4. 代码解读

4.1 #include

这是一个预处理指令,告诉编译器我们需要使用一个叫做iostream的库。因为我们需要输出信息,而系统的标准库提供了这样的功能,所以要用#include做一个引入的预处理。

4.2 主函数 main()

接下来的主体,是一个“主函数”。所谓的函数,就是包装好的一系列要执行的操作,可以返回一个结果。一个C++程序可以包含很多函数,其中一个必须叫做main,它是执行程序的入口。也就是说,当我们运行这个程序的时候,操作系统就会找到这个“主函数”开始执行。main()的定义形式如下:

int main()
{
	statements
	return 0;
}

具体细分,第一行int main()叫做函数头,下面的花括号扩起来的部分叫函数体。函数头定义了函数的名字叫main,前面的int表示返回值是整数类型(integer);后面的括号里面本应该写传入的参数列表,这里是空的。花括号包围的部分就是函数体,里面就是我们要执行的操作。

4.3 语句

函数体里,每一步操作都是一个“语句”(statement),用分号结尾。我们这里的语句,执行的就是输出Hello World的操作。

std::cout << "Hello World!" << std::endl;

这是一个“表达式”。所谓表达式,一般由多个运算的对象和运算符组成,执行运算之后会得到一个计算结果。在这里,两个连在一起的小于号<<就是一个用来输出的运算符。它的使用规则是:左边需要一个“输出流”的对象,也就是输出到哪里;右边是要输出的内容,最简单的就是一个“字符串”,需要用双引号引起来。所以std::cout << "Hello World!"的意思就是:将“Hello World!”这串信息,输出到cout这个对象。cout就是一个输出流对象,iostream库里定义了它的功能,接收到信息之后就可以输出显示了。而cout前面的std是所谓的“命名空间”(namespace),主要是为了避免还有别的cout对象重名起冲突。这里的双冒号::也是一个运算符,叫做作用域运算符,专门指明了我们用的cout是标准库std中的。如果不想总用双冒号,也可以直接加上一句:

using namespace std;

这样就可以直接用cout,不需要加std::。输出运算符<< 得到的计算结果,还是它左边的那个输出流对象cout。这样一来,我们就可以在后面继续写入信息信息了。所以后面的 << endl ,其实就是把endl这个内容,又写入到cout中输出了。这个endl是一个“操作符”,表示结束一行,并把缓冲区的内容都刷到输出设备。

4.4 返回值

最后一行语句就是返回一个值。大多数系统中,main的返回值是用来指示状态的。返回0表示成功,非0表示出错,具体值可以用来表示错误类型,这是由系统定义的。我们这里写了return 0,其实不写也是可以的,默认正常运行结束就会返回0。

附加:注释

在C++中,有两种注释的表示。一种是单行注释,用双斜线“//”,表示以它开始的当前行是注释内容;另一种是多行注释,使用一对“界定符”(/* 和 */),在它们之间的所有内容都是注释。

#include<iostream>
/*
 * 主函数
 * Hello World
 */
int main()
{
	// 输出一行信息
	std::cout << "Hello World!" << std::endl;
	return 0;
}

5. 代码改进

我们之前写的代码非常简单,实现了输出Hello World的功能。不过输出显示用的是“调试控制台”,运行完成总会显示一行额外信息,此时,我们只要更改一下VS的设置。要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。不过出现了新的问题:,当再次运行的时候,窗口一闪而过,根本看不清输出了什么。为了查看输出结果,我们还是希望把窗口保持住、不要直接退出,这可以通过在main()函数中增加一句输入语句来实现:

int main()
{
	// 输出一行信息
	std::cout << "Hello World!" << std::endl;
	// 等待键盘输入
	std::cin.get();
	return 0;
}

这里的cin跟cout刚好相反,它是一个输入流对象。调用它内部的函数get(),就可以读取键盘的输入;等待键盘输入的时候,窗口就会一直开着。这里的键盘输入是以回车作为结束标志的,所以运行看到结果之后,直接敲回车就可以退出了。此时的运行结果如图:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

页面转word的那些事

背景 有些时候需要将页面内容或者是页面的数据通过word进行下载&#xff0c;以方便客户进行二次编辑&#xff0c;而不是直接导出图片或者是pdf。 想在页面端点击下载成word&#xff0c;那必然需要服务端来进行读写文件&#xff0c;无论是你后端编辑好的内容流&#xff0c;还是…

开源数据湖iceberg, hudi ,delta lake, paimon对比分析

Iceberg, Hudi, Delta Lake和Paimon都是用于大数据湖(Data Lake)或数据仓库(Data Warehouse)中数据管理和处理的工具或框架,但它们在设计、功能和适用场景上有所不同。 Iceberg: Iceberg是用于大型分析表的高性能格式。Iceberg将SQL表的可靠性和简易性带入到大数据领域,同…

2024/4/1—力扣—按摩师

代码实现&#xff1a; 思路&#xff1a;打家劫舍题 int massage(int *nums, int numsSize) {if (nums NULL || numsSize 0) {return 0;}if (numsSize 1) {return nums[0];}int dp[numsSize];memset(dp, 0, sizeof(dp));dp[0] nums[0];dp[1] (nums[0] < nums[1] ? nums…

WPS快速将插入Excle数据插入Word

前置条件&#xff1a; 一张有标题、数据的excle表格word中的表格与excle表格标题对应或包含电脑已经安装WPS软件 第一步、根据word模板设计excle模板&#xff0c;标头对应 第二步、word上面选【引用】--【邮件】&#xff0c;选打开数据源&#xff0c;找到excle文件&#xff0c;…

(2024,Attention-Mamba,MoE 替换 MLP)Jamba:混合 Transformer-Mamba 语言模型

Jamba: A Hybrid Transformer-Mamba Language Model 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 模型架构 3. 收获的好处 3.1 单个 80GB GPU 的 Jamba 实现 …

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之四 简单视频倒放效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之四 简单视频倒放效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之四 简单视频倒放效果 一、简单介绍 二、简单视频倒放效果实现原理 三、简单视频倒放效果案例实现…

2014最新AI智能创作系统ChatGPT网站源码,Midjourney绘画网站源码,附搭建部署教程

一、系统前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持…

【redis数据同步】redis-shake数据同步全量+增量

redis-shake数据同步 redis-shake是基于redis-port基础上进行改进的一款产品。它支持解析、恢复、备份、同步四个功能。以下主要介绍同步sync。 恢复restore&#xff1a;将RDB文件恢复到目的redis数据库。备份dump&#xff1a;将源redis的全量数据通过RDB文件备份起来。解析de…

[开源]基于SVM的时间序列预测python代码

整理了SVM的时间序列预测python代码分享给大家。记得点赞哦 #!/usr/bin/env python # coding: utf-8import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn import preprocessing from sklearn.metrics import mean_squared_error from math i…

嵌入式Linux驱动开发——汇编点灯

嵌入式Linux驱动开发——汇编点灯 本文章开始记录学习嵌入式Linux的过程&#xff0c;使用的开发板是正点原子的阿尔法&#xff0c;以及左老师的书籍和视频。然后这个系列不会介绍基础知识&#xff08;书上都有&#xff09;&#xff0c;主要是记录思考过程以及需要注意的点。 代…

docker使用arthas基本教程

供参考也是自己的笔记 docker容器下使用遇到的问题&#xff1a;大致是连接不上1号进程 我这边主要的问题是用户权限问题&#xff0c;docker容器使用aaa用户启动&#xff0c;那个在docker容器内&#xff0c;需要使用aaa用于启动 docker 容器如何使用arthas #实现下载好arthas …

启动Unity发布的exe并且添加启动参数

启动Unity发布的exe并且添加启动参数 在启动Unity的时候添加一些启动的参数。 代码解释 在启动的时候获取的启动参数如果没有获取到正确的启动参数那么就退出程序&#xff0c;这个代码仅仅在发布到windows之后才会生效&#xff0c;在编辑器下这个代码虽然会获取到参数但是不能…

CVE-2024-3148 DedeCms makehtml_archives_action sql注入漏洞分析

DedeCMS&#xff08;也称为织梦CMS&#xff09;是一款基于PHPMySQL的开源内容管理系统。 在 DedeCMS 5.7.112 中发现一个被归类为严重的漏洞。此漏洞会影响某些未知文件dede/makehtml_archives_action.php的处理。操作导致 sql 注入。攻击可能是远程发起的。该漏洞已向公众披露…

【C++入门】缺省参数、函数重载与引用

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

软件无线电系列——CIC滤波器

本节目录 一、CIC滤波器 1、积分器 2、梳状滤波器 3、CIC滤波器的特性 二、单级CIC和多级CIC滤波器本节内容 一、CIC滤波器 CIC滤波器&#xff0c;英文名称为Cascade Integrator Comb&#xff0c;中文全称为级联积分梳状滤波器&#xff0c;从字面来看就是将积分器与梳状滤波器…

Azure runbook 使用用户托管标识查看资源状态

Azure runbook 使用用户托管标识查看资源状态 在托管标识里创建用户托管标识在被查看或变更资源进行授权创建自动化账号和runbook发布脚本添加计划 在托管标识里创建用户托管标识 在被查看或变更资源进行授权 这里是选取的Analysis Services 资源 创建自动化账号和runbook 发布…

JQuery(二)---【使用JQuery对HTML、CSS进行操作】

零.前言 JQuery(一)---【JQuery简介、安装、初步使用、各种事件】-CSDN博客 一.使用JQuery对HTML操作 1.1获取元素内容、属性 使用JQ可以操作元素的“内容” text()&#xff1a;设置或返回元素的文本内容html()&#xff1a;设置或返回元素的内容(包括HTML标记)val()&#…

Python零基础从小白打怪升级中~~~~~~~入门

第一节&#xff1a;Python入门&#xff08;一&#xff09; 1、Python介绍 编程语言就是人和计算机进行交流的一种语言 Pythonc / CJavaPHPC#gobasicqbasicVBVCPython 是一个高层次的结合了解释性、编译性、互动性和面向对象&#xff0c;同时也面向函数的脚本语言。 Python 是…

C语言--条件编译(常见的编译指令)

#if&#xff08;开始&#xff08;判断条件&#xff09;&#xff09;#endif&#xff08;结束&#xff09; 条件满足就参与编译&#xff0c;这里是一个判断的语句&#xff0c;当M大于0的时候&#xff0c;打印hehe不然就不打印 或者注释代码也好用 当#if 0的时候 &#xff0c;也…

解决IDEA 控制台中文乱码

运行某个项目时IntelliJ IDEA 控制台中文乱码&#xff0c;但其他的项目是正常的。接口文档也显示乱码&#xff1a; 一、修改 IntelliJ IDEA 全局编码、项目编码、属性文件编码 上方导航栏“File→Settings…”进入配置页面&#xff0c;在“Editor”中下滑找到“File Encodings…