C++ 入门(二)— 基础知识

news2024/11/15 5:01:25

文章目录

  • 语句和程序的结构
  • 对象和变量
  • 变量赋值和初始化
  • cout、cin 和 endl

语句和程序的结构

语句
语句是迄今为止 C++ 程序中最常见的指令类型。这是因为它们是 C++ 语言中最小的独立计算单元。在这方面,它们的行为很像自然语言中的句子。

C++ 中的大多数(但不是全部)语句都以分号结尾。如果您看到以分号结尾的行,则它可能是一个语句。

在 C++ 中,语句通常分组为称为函数的单元。函数是按顺序(从上到下)执行的语句集合。

剖析 Hello world

#include <iostream>
int main()
{
   std::cout << "Hello world!";
   return 0;
}
  • 第 1 行称为预处理器指令。此预处理器指令指示使用库的内容,该库是 C++ 标准库的一部分,允许从控制台读取和写入文本。
  • 第 2 行告诉编译器,我们将编写(定义)一个名称(标识符)为 的函数。如上所述,每个 C++ 程序都必须有一个函数,否则它将无法链接。
  • 第 3 行和第 6 行告诉编译器哪些行是 main 函数的一部分。第 4 行的左大括号和第 7 行的右大括号之间的所有内容都被视为函数的一部分。这称为函数体。
  • 第 5 行是函数中的第一个语句,也是我们运行程序时将执行的第一个语句。 此语句创建程序的可见输出。
  • 第 6 行是返回语句。当可执行程序完成运行时,该程序会向操作系统发送一个值,以指示它是否成功运行。

对象和变量

对象
在 C++ 中,不建议直接访问内存。相反,我们通过一个对象间接访问内存。对象是可以存储值的存储区域(通常是内存),并具有其他相关属性。

这意味着我们可以专注于使用对象来存储和检索值,而不必担心这些对象实际上被放置在内存中的哪个位置。

变量
尽管 C++ 中的对象可以是未命名的(匿名),但更多时候我们使用标识符来命名对象。具有名称的对象称为变量。

对象用于在内存中存储值。变量是具有名称(标识符)的对象。

变量赋值和初始化

变量赋值
定义变量后,可以使用 = 运算符为其指定一个值(在单独的语句中)。此过程称为赋值,= 运算符称为赋值运算符

int width = 5;

初始化
在 C++ 中初始化变量有 6 种基本方法:

int a;         // 默认初始化
int b = 5;     // 赋值初始化
int c( 6 );    // 直接初始化

// 列表初始化方法(c++ 11)(首选)
int d { 7 };  
int e = { 8 }; 
int f {};      

属性
[[maybe_unused]]

C++17 引入了属性,它允许我们告诉编译器我们可以接受未使用的变量。编译器不会为此类变量生成未使用的变量警告。

int main()
{
	//这些变量不会产生未使用的变量警告
    [[maybe_unused]] double pi { 3.14159 };
    [[maybe_unused]] double gravity { 9.8 };
    [[maybe_unused]] double phi { 1.61803 };
    return 0;
}

cout、cin 和 endl

输入/输出库(io 库)是处理基本输入和输出的 C++ 标准库的一部分。我们将使用此库中的功能从键盘获取输入并将数据输出到控制台。iostream 的 io 部分代表输入/输出。

若要使用 iostream 库中定义的功能,我们需要在使用 iostream 中定义的内容的任何代码文件的顶部包含 iostream 标头,如下所示:

#include <iostream>
// 下面是使用iostream功能的代码

std::cout
std::cout,它允许我们将数据发送到控制台以打印为文本。Cout 代表“字符输出”。

#include <iostream> 
int main()
{
    std::cout << "Hello world!";
    int x{ 5 }; 
    std::cout << x; 
    std::cout << "x is equal to: " << x;
    std::cout << "Hello" << " world!";
    return 0;
}

std::cin
std::cin是在库中定义的另一个预定义变量。而使用插入运算符 () 将数据打印到控制台(代表“字符输入”),则使用提取运算符 (>>) 从键盘读取输入。输入必须存储在要使用的变量中。

#include <iostream> 
int main()
{
    std::cout << "Enter a number: "; 
    int x{};       // 定义变量x来保存用户输入(并对其进行值初始化)
    std::cin >> x; //从键盘中获取数字并将其存储在变量x中
    std::cout << "You entered " << x << '\n';
    return 0;
}

在这里插入图片描述

std::endl
使用 std::cout 输出时,std::endl将换行符打印到控制台(使光标转到下一行的开头)。

#include <iostream> // for std::cout and std::endl
int main()
{
    std::cout << "Hi!" << std::endl; // std::endl 会导致光标移动到控制台的下一行
    std::cout << "My name is Alex." << std::endl;
    return 0;
}

在这里插入图片描述

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

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

相关文章

在Windows11的WSL上运行Llama2-7b-chat 上

最近在玩大模型&#xff0c;玩了ChatGLM3感觉不过瘾&#xff0c;又去玩了Llama2&#xff08;在Windows上简直难的离谱&#xff09;&#xff0c;下边我讲为大家讲一下我的心路历程。 心路历程 第一天&#xff1a;GLM那么简单&#xff0c;有手就行啊&#xff0c;最近Llama2开源…

Android中下载 HAXM 报错 Intel® HAXM installation failed,如何解决?

最近在搭建 Flutter 环境&#xff0c;但是在 Android Studio 中安装 Virtual Device 时&#xff0c;出现了一个 问题 Intel HAXM installation failed. To install Intel HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructio…

ES6.8.6 Java客户端发起 增删改查 query (bool)、update、delete

文章目录 环境测试数据增单个新增批量新增 删通过delete by api删除通过delete by query api删除删除索引中指定字段&#xff08;script&#xff09; 改单个修改update by api通过_bulk批量修改批量修改update by query api使用script脚本修改 查完全匹配&#xff08;term&…

Linux:进程信号

文章目录 信号的概念实践信号关于前台和后台进程的操作 操作系统与外设信号的产生 前面的篇章结束了信号量的话题&#xff0c;那么接下来引入的是信号的话题&#xff0c;信号和信号量之间没有任何关系&#xff0c;只是名字比较像 信号的概念 在生活中存在各种各样的信号&…

【游戏服务器部署】幻兽帕鲁服务器一键部署保姆级教程,游戏私服还是自己搭建的香

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或肢解后食用。—幻兽帕鲁 想要…

【Linux】压缩脚本、报警脚本

一、压缩搅拌 要求&#xff1a; 写一个脚本&#xff0c;完成如下功能 传递一个参数给脚本&#xff0c;此参数为gzip、bzip2或者xz三者之一&#xff1b; (1) 如果参数1的值为gzip&#xff0c;则使用tar和gzip归档压缩/etc目录至/backups目录中&#xff0c;并命名为/backups/etc…

【新书推荐】4.1节 数值编码规则

本节内容&#xff1a;不同进制数据的编码规则。 ■数值数据的编码规则&#xff1a;二进制数、十六进制数和十进制数&#xff0c;以及无符号整数和有符合整数的编码规则。 ■基本数据类型&#xff1a;编译器指定的数据类型为基本数据类型。汇编器MASM5.0指定的基本数据类型有BYT…

HubSpot社交媒体影响力怎么样?

HubSpot是一家在数字营销和销售领域非常知名的公司&#xff0c;以其全面的营销、销售和客户服务软件而闻名。然而&#xff0c;关于HubSpot在社交媒体上的具体影响力&#xff0c;这是一个动态的情况&#xff0c;因为社交媒体的影响力可能受到多种因素的影响&#xff0c;包括社交…

yarn 现代的包管理工具 介绍

一、前言 yarn 是一个现代的包管理工具&#xff0c;它是 npm&#xff08;Node Package Manager&#xff09;的一个替代品。yarn 由 Facebook 开发&#xff0c;并在 2016 年发布。它解决了当时 npm 的一些问题&#xff0c;尤其是在性能和安全性方面。 yarn 主要用于以下几个方面…

利用操作符解题的精彩瞬间(上)

下面是链接为了解释练习2的并且还有与操作符相关的知识。 C语言与操作符相关的经典例题-CSDN博客 操作符详解&#xff08;上&#xff09;-CSDN博客 操作符详解&#xff08;下&#xff09;-CSDN博客 目录 练习1&#xff1a;在一个整型数组中&#xff0c;只有一个数字出现一…

SpringCloud微服务常见问题

1 微服务 返回面试宝典 问题1 SpringCloud常见组件有哪些&#xff1f; SpringCloud包含的组件很多&#xff0c;有很多功能是重复的&#xff0c;其中最常见的组件包括&#xff1a; 注册中心组件&#xff1a;Eureka、Nacos等&#xff1b;负载均衡组件&#xff1a;Ribbon&…

面试题 02.07. 链表相交(力扣LeetCode)

文章目录 面试题 02.07. 链表相交题目描述解题思路c代码优化后c代码 面试题 02.07. 链表相交 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 …

【Linux】—— 信号的产生

本期&#xff0c;我们今天要将的是信号的第二个知识&#xff0c;即信号的产生。 目录 &#xff08;一&#xff09;通过终端按键产生信号 &#xff08;二&#xff09;调用系统函数向进程发信号 &#xff08;三&#xff09;由软件条件产生信号 &#xff08;四&#xff09;硬件…

【学习笔记】Vue3源码解析:第一部分-实现vue3环境搭建

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第一部分&#xff1a;实现vue3环境搭建&#xff08;对应课程的第1-3节&#xff09; VUE2与VUE3的对比&#xff1a; 也即vue2的痛点&#xff1a; 对TypeSc…

vue3前端开发框架的安全特性,非常适合现在的市场需求

vue3前端开发框架的安全特性,非常适合现在的市场需求&#xff01;现在几乎所有的前端开发&#xff0c;都是使用的vue3做了开发。下面给大家展示一下。为什么说vue3框架自带安全特性呢。 如图&#xff0c;这个是我们在浏览器内看见的&#xff0c;渲染后的数据页面信息。很齐全。…

超越人类上限的策划:百度输入法在候选词区域植入广告

一位 V2EX 用户最新发帖称&#xff0c;百度输入法的最新版本中引入了一个新功能&#xff0c;将广告直接植入到候选词区域。 具体表现为&#xff0c;当用户输入某些关键词时&#xff0c;候选词区域会显示与输入内容相关的广告链接。例如&#xff0c;用户输入“招商”时&#xf…

【C++】类与对象(二)特殊成员函数

前言 类与对象&#xff08;二&#xff09; 文章目录 一、特殊成员函数二、构造函数三、析构函数四、拷贝构造函数五、拷贝赋值运算符 一、特殊成员函数 如果在类的声明中未显式提供某个成员函数的定义&#xff0c;编译器会自动生成一个默认实现。 这包括默认构造函数、默认析构…

Flutter 开发3:创建第一个Flutter应用

Step 1: 安装Flutter 1.1 下载Flutter SDK 首先&#xff0c;你需要访问Flutter官方网站下载最新的Flutter SDK。选择适合你操作系统的安装包。 $ cd ~/development $ unzip ~/Downloads/flutter_macos_2.2.3-stable.zip1.2 更新环境变量 接下来&#xff0c;你需要将Flutter…

笔记本电脑系统Win10重装教程

当前很多用户都会使用笔记本电脑办公&#xff0c;如果笔记本电脑携带的操作系统不好用&#xff0c;就会影响到用户的办公效率&#xff0c;这时候可以给笔记本电脑重新安装一款好用的系统。以下小编带来笔记本电脑系统Win10重装教程&#xff0c;让用户们轻松给笔记本电脑重新安装…

张维迎《博弈与社会》纳什均衡与囚徒困境博弈(2)囚徒困境博弈

囚徒困境大家应该都比较熟悉了&#xff0c;我觉得这篇的意义大概在与&#xff0c;经济学术语的运用&#xff1f; 囚徒困境&#xff1a;个人理性与集体理性的矛盾 假定有两个犯罪嫌疑人共同作案。警察抓住他们以后&#xff0c;分开拘押&#xff0c;并告诉他们&#xff1a;可以选…