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

【C++复习1】程序结构和C++的工作原理

如果你是一名newbird的话,建议先看如下的视频加深理解后,再看下面的内容:
https://www.bilibili.com/video/BV1N24y1B7nQ?p=6
在这里插入图片描述

声明

以下的内容均由chatGpt编写与对上面这个视频进行总结生成,我就只负责改改格式。

C++的工作原理

1. 什么是C++

C++是一种高级编程语言,旨在提供一种面向对象的编程模型,同时还支持低级别的系统编程。

2. 下面是C++的一般工作原理(其内容与C++编译器的工作原理差不多):

  1. 编写C++代码:开发人员使用C++编写源代码。源代码包含C++语言的语句和算法,这些语句和算法描述了程序应该执行的操作。

  2. 编译代码:源代码需要经过编译器的处理,以将其转换为可执行文件。编译器将源代码转换为机器代码,这是计算机硬件能够理解和执行的指令。

  3. 连接程序:编译器生成对象文件,这些对象文件需要链接器将它们组合成可执行文件。链接器将各个对象文件的函数和变量组合起来,创建一个可执行的二进制文件。

  4. 运行程序:一旦可执行文件生成,用户可以运行程序。程序被加载到内存中,并开始执行其中的代码。

  5. 执行代码:一旦程序开始运行,它将执行C++代码中定义的指令和算法。程序可以使用变量、控制结构、函数和其他C++语言元素,以完成其任务。

在程序执行期间,它可以与操作系统和计算机硬件交互。程序可以使用操作系统API调用来执行I/O操作、内存管理和其他操作。程序还可以与硬件设备进行通信,如打印机、网络适配器和输入设备等。

总之,C++程序的工作原理包括编写源代码、编译源代码、链接生成的对象文件、加载可执行文件并执行其中的代码。

2. 程序结构

2.1 main()函数

概念

在C++中,main函数是程序的入口点,也是程序执行的起点。程序在启动时会首先执行main函数,然后按照顺序执行main函数中的语句,直到程序结束或遇到return语句为止。

main函数的语法如下:

int main() {
  // 程序语句
  return 0;
}

在上面的示例代码中,main函数的返回值类型为int,表示程序正常结束时返回的整数值。可以使用return语句在程序执行结束时返回一个整数值,这个值会被传递给操作系统,用于表示程序的执行状态。通常情况下,返回值为0表示程序正常结束,非0值表示程序出现错误或异常情况。

除了int类型之外,main函数还可以返回void类型。在这种情况下,程序的执行状态默认为0,因为没有返回值传递给操作系统。

main函数可以带有参数,其中argc参数表示命令行参数的数量,argv参数是一个指向指针的指针,它指向每个命令行参数的字符串。以下是一个带有命令行参数的示例:

int main(int argc, char* argv[]) {
  // 处理命令行参数
  return 0;
}

2.2 #include

概念

在C++中,#include指令用于包含头文件,即将其他源代码文件中定义的函数和变量导入到当前源代码文件中使用。

#include指令的语法如下:

#include <header_file>

其中,header_file是要包含的头文件的名称。头文件名称通常使用扩展名.h(例如,iostream.h)或没有扩展名(例如,cstdlib)

两种不同#include指令形式,分别是角括号形式和引号形式。使用角括号的形式将告诉编译器在系统目录中查找头文件,而使用引号的形式则告诉编译器在当前目录中查找头文件。

以下是两种#include指令的示例:

#include <iostream> // 使用角括号形式,编译器将在系统目录中查找头文件
#include "my_header.h" // 使用引号形式,编译器将在当前目录中查找头文件

在C++程序中,头文件包含通常位于源代码文件的开头。这样,当编译器扫描源代码文件时,它可以读取和处理所有需要包含的头文件。通过包含正确的头文件,程序可以使用其他源代码文件中定义的函数和变量。

2.3 cout

概念

在C++中,cout是一个标准输出流对象,用于将文本输出到控制台或其他标准输出设备。cout是iostream标准库中的一个对象,用于向控制台输出信息。

cout的语法如下:

#include <iostream> // 头文件声明
using namespace std; // 命名空间

int main() {
  cout << "Hello, world!"; // 输出文本
  return 0;
}

在上面的示例代码中,cout被用于输出文本到控制台。<<运算符用于将文本流插入到cout对象中。可以使用多个<<运算符将多个文本流连续插入到cout中,这样它们就会在同一行上输出。

cout还可以用于输出变量的值。可以使用<<运算符将变量值插入到文本流中,然后将文本流输出到控制台。

以下是一个输出变量值的示例:

#include <iostream> // 头文件声明
using namespace std; // 命名空间

int main() {
  int x = 42;
  cout << "The value of x is " << x << endl; // 输出变量值
  return 0;
}

在上面的示例代码中,cout被用于输出变量x的值。注意,在文本流中插入变量值时,需要将变量名称放在双引号" "之外。另外,endl操作符用于在输出之后在控制台上插入一个换行符。

总而言之,上面是输出变量和字符串的两个不同例子。

2.4 cin

概念

在C++中,cin是一个标准输入流对象,用于从控制台或其他标准输入设备读取用户输入的数据。ciniostream标准库中的一个对象,用于从标准输入设备读取信息。

cin的语法如下:

#include <iostream> // 头文件声明
using namespace std; // 命名空间

int main() {
  int x;
  cout << "Enter a number: ";
  cin >> x; // 读取用户输入
  cout << "You entered " << x << endl; // 输出用户输入
  return 0;
}

在上面的示例代码中,cin被用于从控制台读取用户输入的整数值。>>运算符用于从cin对象中提取数据,并将其存储在变量x中。注意,读取数据的类型必须与变量的类型相匹配,否则会导致错误。

cin还可以用于从控制台读取其他类型的数据,如浮点数、字符和字符串等。例如,使用>>运算符从cin对象中读取字符串:

#include <iostream> // 头文件声明
using namespace std; // 命名空间

int main() {
  string name;
  cout << "Enter your name: ";
  cin >> name; // 读取用户输入的字符串
  cout << "Hello, " << name << "!" << endl; // 输出问候语
  return 0;
}

在上面的示例代码中,cin被用于从控制台读取用户输入的字符串值。由于输入的字符串可以包含空格,因此cin默认只会读取第一个单词。如果要读取整个字符串,可以使用getline函数。

总而言之,上面分别是输入intstring类型的两个例子


http://www.kler.cn/news/17370.html

相关文章:

  • Java程序设计入门教程--数组
  • 小球下落(dropping balls)uva679
  • go 打包文件夹成zip文件
  • Envoy控制面实践
  • 漫画 | Linux之父:财务自由以后,我失眠了!
  • 华为OD机试 - 整理扑克牌(Python)
  • [计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)
  • 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,基于 CentOS 7 构建 LVS-DR 群集
  • springboot 集成 shardingSphere 加mybatisplus 自带增加 分页查询 和源代码包 分库分表 单库 分表 使用雪花算法id
  • node.js 处理路径问题
  • VR与AR:哪个有更大的潜力改变未来?
  • 今天面了个字节跳动拿35K出来的,真是砂纸擦屁股,给我露了一手啊
  • Skywalking
  • gtest之高级主题
  • Spring常用注解总结
  • PAT A1024 Palindromic Number
  • Java对象的创建方式以及对象的引用
  • 【Elsevier】中科院2区TOP, 高被引119篇, 稳定检索22年, 1周可见刊,5月15截稿~
  • Simulink 自动代码生成电机控制:弱磁控制从仿真到硬件开发板验证实验
  • 豪取BAT!超详细暑期实习算法面经(非科班无论文)
  • 如何监控一个程序的运行情况,然后视情况将进程杀死并重启
  • redis使用总结
  • 对传递函数的零极点、频率响应、稳定性的理解
  • Vue3 如何全局使用按钮截流指令
  • 复古决战快速施法穿墙秒怪分析流程及安全防护
  • 网络基础设施 拥塞控制
  • 基于JavaWeb实现的寻码网文章资讯管理系统
  • 动态页面配置
  • 我有一个方法判断你有没有编程天赋
  • ElasticSearch学习随笔之分词算法