C++学习之旅-入门永远的HelloWorld变量的基础

news/2024/12/31 7:14:21/

文章目录

      • 创建文件(Hello World)
      • 注释
      • 变量的使用
      • 常量
      • 标识符命名规则
      • 数据类型
        • 整形
        • sizeof关键字
        • 实型(浮点类型)
        • 字符型
        • 转义字符
        • 字符串类型
        • 布尔类型
        • 数据的输入
        • 加减乘除运算
        • 算数运算
        • 逻辑运算
      • 程序流程结构
        • 选择结构
        • 循环结构
      • 跳转语句
        • 举例(while循环+break)
        • 举例(for循环+contine)
      • 跳转语句goto
      • 数组
        • 一维数组
          • 数组名
          • 数组逆置
          • 冒泡排序
        • 二维数组
          • 数组名称

VsStudio下载
在这里插入图片描述
在这里插入图片描述

创建文件(Hello World)

在这里插入图片描述

或者添加模块

在这里插入图片描述

//main.cpp
#include <iostream>using namespace std;int main(void) {cout << "hello world" << endl;system("pause");return 0;
}

注释

  • 单行注释: //
  • 多行注释: /**/

变量的使用

变量就是方便我们操作内存中的数据
语法: 数据类型 变量名 = 变量初始值。例如: int a = 10;

常量

常量用于记录程序中不可更改的数据

常量定义的俩种方式

  • #define宏常量:#define 常量名 常量值
  • const修饰的变量: const 变量名 = 常量值

标识符命名规则

作用: C++标识符(变量,常量)命名时有一套自己的规则

  • 标识符不能是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字母必须是字母或者下划线
  • 标识符中字母区分大小写

定义是,尽量见名知意,方便他人和自己阅读

数据类型

整形

数据类型占用空间取值范围
shot(短整型)2字节(-215~215-1)
int(整形)4字节(-231~231-1)
long(长整形)windows是4字节,Linux为4字节(32位)8字节(64位)(-231~231-1)
long long(长长整形)8字节(-263~263-1)

sizeof关键字

#include <iostream>using namespace std;int main(void) {long long ll = 628;cout << sizeof(ll) << endl;system("pause");return 0;
}

在这里插入图片描述

实型(浮点类型)

数据类型占用空间有效值范围
float4字节7位有效数字
double8字节15~16位有效数字
#include <iostream>using namespace std;int main(void) {float pi = 3.14f;double test = 3.1415926;cout << "单精度:" << pi << endl;cout << "双精度:" << test << endl;system("pause");return 0;
}

在这里插入图片描述

字符型

作用: 字符型变量用于显示单个字符
语法: char ch = 'a'(只能写单引号和里面只能写一个字符)

#include <iostream>using namespace std;int main(void) {char ch = 'a';cout << ch << endl;cout << sizeof(ch) << endl;cout << (int)ch << endl;system("pause");return 0;
}

字符型变量并不是本身放入内存存储,而是将对应的ASCII码放入
在这里插入图片描述

转义字符

转义字符含义ASCII码值(十进制)
\a警报007
\b退格008
\f换页012
\n换行010
\r回车(CR)013
\t水平制表009
\v垂直制表011
\\代表一个反斜线字符"\"092
\’代表一个单引号039
\‘’代表双引号034
\?代表一个问号063
\0数字00000
\ddd8进制转移字符,d范围0~73位8进制
\hhh16进制转移字符,h范围:0-9,a-f3位16进制

字符串类型

作用:表示一串字符

  • C语言风格字符串char 变量名[] = "字符串值"
char str[] = "...";
  • C++风格字符串string 变量名 = "字符串值"
string str = ""

布尔类型

布尔类型返回值只有真(本质是1)或假(本质是0)

int main(){bool flag = truecout << flag << endl;
}

数据的输入

关键字cin
语法: cin >> 变量

int a = 0;
cin >> a;
cout << "输入的值:" << a << endl

加减乘除运算

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值给变量
比较运算符用于表达式的比较,并返回一个真或假值
逻辑运算符用于根据表达式的值返回真值或假值

算数运算

运算符属于示例结果
+正号+33
-负号-3-3
+10+515
-10-55
*10*550
/10 / 52
%取模(取余)10%31
++前递增a=0;++a0,1
++后递增a=0;a++0,0
前递减a=2;–a2,1
后递减a=0;a–2,2

逻辑运算

运算符术语示例结果
!!a如果a为假,那么!a就是真
&&a && b如果a和b为真,结果才为真
||a||b如果a和b其中一个为真, 结果就为真

程序流程结构

C/C++支持的三种运行结构: 顺序结构,选择结构,循环结构

选择结构

if语句(单行)
语法if(条件){}

int main(){int a = 10;if(a > 0){cout<< a << endl;}
}

if语句(多行)
语法if(条件){}else{}

int a = 0;
if(a > 10){
//...
}else{
//...
}

if语句(多条件)
语法if(条件1){}else if(条件2){}else if(条件n){}else{}

嵌套if语句
语法if(条件1){if(条件2){}}

三目运算符
语法条件?true的语句:false的语句

int a = 10;
a < 10? "真的":"假的";

switch语句
语法switch(条件){case value1:执行语句;break;case value2:执行语句;break;}

循环结构

while循环语句
语法while(条件){满足条件执行循环}

do…while语句
语法do{}while(条件)
不同点: 相比于while循环dowhile循环是无论满不满足条件都会执行一次

for循环
语法for(起始表达式;条件表达式;末尾循环体){循环语句}

for(int i = 0; i< 10; i++){cout<< i << endl;
}

嵌套循环

for(int i=0;i<5;i++){for(int j=0; j< 3;j++){cout << i*j << endl;}
}

跳转语句

作用: 用于跳出选择结构或者循环结构

举例(while循环+break)

int i = 0;
while(true){//死循环if(i >= 10){//当满足条件,跳出循环break;}i++;
}

举例(for循环+contine)

for(int i = 0; i< 10; i++){if(i / 2 == 0){contine;}
}

跳转语句goto

  • 可以之前的那个break的案例来进行修改
  • 语法goto Name;Name:语句
#include <iostream>using namespace std;int main(void) {int i = 0;while (true) {//死循环if (i >= 10) {//当满足条件,跳出循环goto FLAG;}i++;}FLAG:cout << i << endl;
}

不怎么用的原因是: 跳转过于平凡逻辑会很混乱

数组

  • 特点一: 数组中每个数据元素都是相同数据类型
  • 特点二: 数组是由连续的内存位置组成

一维数组

定义一维数组的三种方式:

  1. 数据类型 数组名[数组长度];
  2. 数据类型 数组名[数组长度] = {值1,值2,....}
  3. 数据类型 数组名[] = {值1,值2,....}
//数据类型 数组名[数组长度];
int arr[5];
//给数组中的元素进行赋值
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
//访问数据元素
//cout << arr[0] << endl;
//cout << arr[1] << endl;
//cout << arr[2] << endl;
//cout << arr[3] << endl;
//cout << arr[4] << endl;
for(int i=0;i < 5; i++){cout << arr[i] << endl;
}
数组名

一维数组的名称的用途:

  1. 可以统计整个数组在内存中的长度
  2. 可以获取数组在内存中的首地址
//1.可以统计整个数组在内存中的长度
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
cout << "整个数组占用内存空间为:" << sizeof(arr) << endl;
cout << "每个元素占用内存空间为:" << sizeof(arr[0]) << endl;
cout << "数组中元素的个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;//2. 可以获取数组在内存中的首地址
cout << "数组首地址为:" << (int)arr << endl;
cout << "数组中第一个元素地址为:" << (int)&arr[0] << endl;
数组逆置

所谓逆置就是首位数组元素交换

int start = 0;//起始元素下标
int end = sizeof(arr)/sizeof(arr[0]) - 1;//末尾元素下标int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
冒泡排序

我们按照之前的哪个思路,先转换一次

#include <iostream>using namespace std;int temp;
int main(void) {int arr[] = { 4,2,8,0,5,7,1,3,9 };if (arr[0] > arr[1]) {temp = arr[0];arr[0] = arr[1];arr[1] = temp;}for (int i = 0; i < 8; i++) {cout << arr[i] << endl;}
}

在这里插入图片描述
发现交换成功

#include <iostream>using namespace std;int temp;
int main(void) {int arr[] = { 4,2,8,0,5,7,1,3,9 };//冒泡排序for (int i = 0; i < 9 - 1; i++) {for (int j = 0; j < 9 - i - 1; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}//显示for (int i = 0; i < 9; i++) {cout << arr[i] << endl;}
}

二维数组

二维数组定义的四种方式:

  1. 数组类型 数组名[行数][列数];
  2. 数组类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
  3. 数组类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4};
  4. 数组类型 数组名[][列数] = {数据1,数据2,数据3,数据4};
int arr[2][3] = {{1,2,3},{4,5,6}
};
for(int i=0;i<2;i++){for(int j=0;j<3;j++){cout << arr[i][j] << " ";}cout<<endl;
}
数组名称
  • 查看二位数组所占有的内存空间
  • 获取二位数组的收地址
int arr[2][3] = {{1,2,3},{4,5,6}
};
//查看二位数组所占有的内存空间
cout << "二维数组占用的内存空间为:" << sizeof(arr) << endl;
cout << "二维数组第一行占用的内存空间为:" << sizeof(arr[0]) << endl;
cout << "二维数组第一个元素占用的内存空间为:" << sizeof(arr[0][0]) << endl;cout << "二维数组行数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
//获取二位数组的收地址
cout << "二维数组首地址为: " << (int)arr << endl;
cout << "二维数组第一行首地址为: " << (int)arr[0] << endl;

http://www.ppmy.cn/news/123469.html

相关文章

功率信号源驱动电路工作原理是什么

功率信号源驱动电路是一种能够将低功率、微弱的信号放大到足够高的功率水平的电路。在现代通信、医疗、工业等领域中&#xff0c;功率信号源驱动电路被广泛应用。下面&#xff0c;我们将对功率信号源驱动电路进行详细的介绍。 图&#xff1a;ATG-2000系列功率信号源 功率信号源…

二进制安装K8S

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)https://developer.aliyun.com/mirror/所有节点yum源更换为 &#xff0c;按照aliyun给的容器里面的kubenetes源和docker源&#xff0c;当然最好把之前的centos源也换成aliyun的 所有节点安装docker yum install -…

微控制器(单片机)的中断系统及应用

文章目录 1. 什么是中断1.1 中断的概念1.2 中断源1.2.1 中断源的种类 2. 中断寄存器2.1 TCON寄存器2.2 SCON寄存器2.3 IE寄存器2.4 IP寄存器 3. 中断处理流程3.1 定时器中断实操3.2 外部中断实操3.3 思考题&#xff1a; 4. 最重要的事 1. 什么是中断 1.1 中断的概念 中断是指…

操作系统中的中断控制

本文为随笔&#xff0c;更多细节可关注微信公众号&#xff1a;emOsprey uCOS II MAX_SYSCALL_INTERRUPT_PRIORITY EQU 3 ; 屏蔽低于优先级 2 的中断&#xff0c;即抢占优先级设置为 0~2 将被屏蔽&#xff0c;3不屏蔽 OS_CPU_SR_SaveMRS R0, BASEPRI ; 读取 PRI…

【中断篇】中断控制器及中断检测时序

&#x1f31f;&#x1f31f;&#x1f31f;博主主页&#xff1a;MuggleZero &#x1f31f;&#x1f31f;&#x1f31f; 《ARMv8架构初学者笔记》专栏地址&#xff1a;《ARMv8架构初学者笔记》 GIC-500控制器支持GICv3架构&#xff0c;具有以下中断类型&#xff1a; SGI&#xff…

ARM通用中断控制器GIC之中断处理简介

在阅读本章之前&#xff0c;可以参考笔者之前关于GIC的一些描述&#xff1a; ARM通用中断控制器GIC(generic Interrupt Controller)简介 ARM架构Generic Interrupt Controller(GIC)之Distributor和CPU interface功能介绍 ARM架构Generic Interrupt Controller(GIC)详解之术语…

Linux中断子系统【1】- 中断控制器GIC驱动分析

系列文章目录 Linux中断子系统【1】- 中断控制器GIC驱动分析 Linux中断子系统【2】- Linux内核软中断softirq和小任务tasklet分析 Linux中断子系统【3】- Linux内核request_irq源码分析 Linux中断子系统【4】- Linux中断子系统之中断映射(初始化中断控制器) Linux中断子系统【…

操作系统中的中断

中断是指CPU对系统发生的某个事件做出的一种反应&#xff0c;CPU暂停正在执行的程序&#xff0c;保存现场后自动去执行相应的处理程序&#xff0c;处理完该事件后再返回中断处继续执行原来的程序。。中断一般三类&#xff0c;一种是由CPU外部引起的&#xff0c;称为外中断。如I…