C++ 基本语法

news2024/12/24 2:42:24

   📒博客主页:  ​​开心档博客主页​​

     🎉欢迎关注🔎点赞👍收藏⭐留言📝

     📌本文由开心档原创!

     📆51CTO首发时间:🌴2022年12月12日🌴

    ✉️这世界很喧嚣,做自己就好!

    🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

⭐本文介绍⭐

C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。

  • 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。
  • 类 - 类可以定义为描述对象行为/状态的模板/蓝图。
  • 方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。
  • 即时变量 - 每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。

​​C++ 程序结构​​

让我们看一段简单的代码,可以输出单词 Hello World

​​实例​​

#include <iostream>
using namespace std;
 
// main() 是程序开始执行的地方
 
int main()
{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

接下来我们讲解一下上面这段程序:

  • C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件 <iostream>
  • 下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
  • 下一行 // main() 是程序开始执行的地方 是一个单行注释。单行注释以 // 开头,在行末结束。
  • 下一行 int main() 是主函数,程序从这里开始执行。
  • 下一行 cout << "Hello World"; 会在屏幕上显示消息 "Hello World"。
  • 下一行 return 0; 终止 main( )函数,并向调用进程返回值 0。

​​编译 & 执行 C++ 程序​​

接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤:

  • 打开一个文本编辑器,添加上述代码。
  • 保存文件为 hello.cpp。
  • 打开命令提示符,进入到保存文件所在的目录。
  • 键入 'g++ hello.cpp ',输入回车,编译代码。如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out 可执行文件。
  • 现在,键入 ' a.out' 来运行程序。
  • 您可以看到屏幕上显示 ' Hello World '。
$ g++ hello.cpp
$ ./a.out
Hello World

请确保您的路径中已包含 g++ 编译器,并确保在包含源文件 hello.cpp 的目录中运行它。

您也可以使用 makefile 来编译 C/C++ 程序。

​​C++ 中的分号 & 语句块​​

在 C++ 中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。

例如,下面是三个不同的语句:

x = y;
y = y+1;
add(x, y);

语句块是一组使用大括号括起来的按逻辑连接的语句。例如:

{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

C++ 不以行末作为结束符的标识,因此,您可以在一行上放置多个语句。例如:

x = y;
y = y+1;
add(x, y);

等同于

x = y; y = y+1; add(x, y);

​​C++ 标识符​​

C++ 标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

C++ 标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言。因此,在 C++ 中,Manpower 和 manpower 是两个不同的标识符。

下面列出几个有效的标识符:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

​​C++ 关键字​​

下表列出了 C++ 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

asm

else

new

this

auto

enum

operator

throw

bool

explicit

private

true

break

export

protected

try

case

extern

public

typedef

catch

false

register

typeid

char

float

reinterpret_cast

typename

class

for

return

union

const

friend

short

unsigned

const_cast

goto

signed

using

continue

if

sizeof

virtual

default

inline

static

void

delete

int

static_cast

volatile

do

long

struct

wchar_t

double

mutable

switch

while

dynamic_cast

namespace

template

完整关键字介绍可查阅:​​C++ 的关键字(保留字)完整介绍​​

​​三字符组​​

三字符组就是用于表示另一个字符的三个字符序列,又称为三字符序列。三字符序列总是以两个问号开头。

三字符序列不太常见,但 C++ 标准允许把某些字符指定为三字符序列。以前为了表示键盘上没有的字符,这是必不可少的一种方法。

三字符序列可以出现在任何地方,包括字符串、字符序列、注释和预处理指令。

下面列出了最常用的三字符序列:

三字符组

替换

??=

#

??/

\

??'

^

??(

[

??)

]

??!

|

??<

{

??>

}

??-

~

如果希望在源程序中有两个连续的问号,且不希望被预处理器替换,这种情况出现在字符常量、字符串字面值或者是程序注释中,可选办法是用字符串的自动连接:"...?""?..."或者转义序列:"...?\?..."。

从Microsoft Visual C++ 2010版开始,该编译器默认不再自动替换三字符组。如果需要使用三字符组替换(如为了兼容古老的软件代码),需要设置编译器命令行选项/Zc:trigraphs

g++仍默认支持三字符组,但会给出编译警告。

​​C++ 中的空格​​

只包含空格的行,被称为空白行,可能带有注释,C++ 编译器会完全忽略它。

在 C++ 中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。因此,在下面的语句中:

int age;

在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。另一方面,在下面的语句中:

fruit = apples + oranges;   // 获取水果的总数

fruit 和 =,或者 = 和 apples 之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。


🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

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

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

相关文章

Python40个自动化办公实战案例,终于实现下班自由啦~

拿来就能用&#xff0c;这么爽的吗&#xff1f;&#xff01; 今天我想聊聊&#xff0c;如何通过Python自动化工具&#xff0c;解决工作中常见的办公效率低下的问题。 你有没有想过&#xff0c;下班晚&#xff0c;加班&#xff0c;可能是因为自己工作比较低效&#xff1f; 回…

wireshark 分析理解DHCP流程

DHCP概念&#xff1a; 动态主机配置协议 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;&#xff0c;是一个应用层协议。该协议允许服务器向客户端动态分配 IP 地址和配置信息。 知识补充&#xff1a; BOOTP&#xff08;Boots…

PVE使用cloud-init快速启动虚拟机

这里写目录标题关于cloud-init云镜像&#xff08;cloud image&#xff09;下载创建虚拟机模板&#xff0c;可反复使用DebianUbuntuCentOS使用模板关于cloud-init 传统ISO镜像装机时&#xff0c;需要一步一步规定虚拟机&#xff0c;比如系统盘安装在哪个磁盘里&#xff0c;ip是…

Vue Material - 基于谷歌 Material Design 打造的前端组件库,用 Vue 开发海外应用的绝佳选择

一位朋友问我用 vue 开发 APP 在谷歌商店上架&#xff0c;有什么简单的 UI 组件库&#xff0c;我推荐了这款&#xff0c;同样推荐给各位。 关于 Vue Material Vue Material 是一款简单、轻量级的 Vue 组件&#xff0c;组件的设计完全按照 Google Material Design 规范构建&am…

氟尿嘧啶/琥珀酰化壳聚糖偶联载药体(SUCS-5-FuOH)

氟尿嘧啶/琥珀酰化壳聚糖偶联载药体(SUCS-5-FuOH) 产品描述&#xff1a;以自制的琥珀酰化壳聚糖 (SUCS)和羟甲基-5-氟尿嘧啶(5-FuOH)为原料,制备了壳聚糖偶联载药体(SUCS-5-FuOH).结果表明,SUCS和5-FuOH间通过酯键化学键合,接枝率(载药率)为18.7%,在模拟体液和酶存在条件下均有…

Redis高可用全景一览

前言 前几天我在知乎看到一个问题&#xff1a;如何建立自己的知识体系和观点&#xff1f;[1] 在一篇高赞回答中讲述了建立“外脑”是关键&#xff0c;文章观点认为&#xff1a;大脑是用来思考的&#xff0c;不是用来记忆的。 我很认同这样的看法&#xff0c;我的账号名为“杨同…

电脑怎么滚动截图的方法

电脑截图常见的有矩形截图、任意形状截图、全屏幕截图、窗口截图等等&#xff0c;那你知道怎么在电脑上滚动截图吗&#xff1f;有时候可能会需要用到滚动截长图&#xff0c;但是很多 用户都不清楚怎么操作&#xff0c;下面小编就来教教大家电脑怎么滚动截图的方法&#xff08;除…

云存储--2

那么&#xff0c;根据我们上一版块的延续&#xff0c;我们来讲讲实际在linux中需要如何进行存储方面的一个操作吧。 那么我使用的是RHEL9.1 红帽作为在linux领域具有绝对的话语权和强大的市场&#xff0c;所以使用该系统还是有点原因哒~ 那么可能会有同学有疑问&#xff1a;欸&…

多目标遗传算法NSGAII求解环境经济调度(Python代码实现)

目录 1 电力系统环境经济调度数学模型 2 算例——IEEE10节点 2.1 数据​ 2.2 Python代码学习 3 一点拓展知识 1 电力系统环境经济调度数学模型 2 算例——IEEE10节点 2.1 数据 我弄成一个表格&#xff0c;方便编程读写&#xff1a; 2.2 Python代码学习 多目标遗传算法N…

【Flutter 组件】002-基础组件:文本与样式

【Flutter 组件】002-基础组件&#xff1a;文本与样式 文章目录【Flutter 组件】002-基础组件&#xff1a;文本与样式一、Text1、概述2、属性列表3、构造方法4、示例代码演示运行结果二、TextStyle1、概述2、属性列表3、构造方法4、示例代码示例运行结果三、TextSpan1、概述2、…

数字图像处理(入门篇)十 边缘检测

目录 一 边缘检测算子 1 Roberts算子 2 Sobel算子 3 Prewitt算子 二 实践 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果图 边缘检测是计算机视觉中的基本问题&#xff0c;边缘检测的难点就在于如何又快又准确地提取图像的边缘信息。 边缘检测的基本方法…

流媒体分析之webrtc之rtcp

TCP作为RTP控制协议&#xff0c;对于弱网下音视频质量和会话控制具有重要的作用。 1. RTCP Header V&#xff1a;RTCP的版本号&#xff0c;一定等于2&#xff1b; P&#xff1a;如果设置&#xff0c;填充位表示数据包包含末尾的附加填充八位字节&#xff0c;不属于控制信息&am…

基于jsp+mysql+ssm影视爱好者论坛交流系统-计算机毕业设计

项目介绍 设计一个电影学习交流社区&#xff0c;使对电影的学生可以方便的进行交流。同时&#xff0c;通过此课题使学生熟悉网站搭建流程和方法。 意义&#xff1a;此课题实现后&#xff0c;可以为喜欢电影的学生提供一个交流学习的平台&#xff0c;提高学生学习兴趣。同时&am…

想提前躺平的程序员,这10个网站收好了!

我们的口号是&#xff1a;搞钱&#xff01;搞钱&#xff01;再搞钱&#xff01;程序员想兼职但是不知道该上哪找&#xff1f; 为大家整理了7个程序员最常用的接私活平台&#xff0c;希望对你有帮助&#xff01;记得点赞收藏&#xff0c;先码后看&#xff01;1、程序员客栈 程序…

基于jsp+mysql+ssm游戏爱好者论坛交流设计-计算机毕业设计

项目介绍 本论坛是一个面向爱好游戏的玩家提供一个交流分享游戏攻略、视频、图片以及娱乐互动,让游戏玩家展示自己最真实的心声!论坛提供注册、登陆、发帖、回复、搜索等功能。用户可以利用论坛进行网上约伴、分享装备属性及其获得方法&#xff0c;进行账号交易等&#xff0c;…

5 - 线程池 Java内置的线程池 - 异步计算结果(Future)

前面介绍 ExecutorService 线程池接口的时候&#xff0c;其中&#xff0c;提交任务的方法 submit() 的返回值就是Future接口类型的。 我们刚刚在学习java内置线程池使用时&#xff0c;没有考虑线程计算的结果&#xff0c;但开发中&#xff0c;我们有时需要利用线程进行一些计算…

2022年牙科医疗行业研究报告

第一章 行业概况 1.1 牙科医疗概念及现状 牙科医疗行业是指以牙科医疗消费为基础&#xff0c;集合了牙科医疗服务、职业牙医教育培训、牙科医疗器材研究开发生产、市场策划、宣传、投资、经营、管理等于一体的医疗产业链。由于牙科疾病的特点&#xff0c;牙科医疗产业在具有一…

iOS扫码一图多码原生处理AVCaptureSession

文章目录前言正文1.定位二维码的位置2.扫码、解析总结前言 业务中一直有扫码的需求&#xff0c;这次说需要扫多个码&#xff08;详细一点是一图多码&#xff09;&#xff0c;有点东西的。 第一点&#xff1a;怎么做&#xff1a;拿到手第一反应是有没有什么库可以直接调用的&am…

VSCode远程连接免密登录

配置了VSCode远程连接服务器&#xff0c;但每次打开project都需要重新输入密码&#xff0c;比较麻烦&#xff0c;所以下面就介绍一下如何免密码登入 在上一篇blog里面配置好VSCode远程连接服务器之后按照如下操作。 步骤如下&#xff1a; 在windows端&#xff1a; 1、winR打…

softmax原理性质解析并python实现

Softmax原理 Softmax函数用于将分类结果归一化&#xff0c;形成一个概率分布。作用类似于二分类中的Sigmoid函数。 对于一个k维向量z&#xff0c;我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果&#xff0c;具体计算公式为&#xff1a; 对于k…