C++基础

数据类型

在创建任意变量和常量时,必须指定出数据类型

存在意义:给变量分配合适的内存空间

1.整型:整数类型

short 2字节 短整型

int 4字节 整形

long windows4字节 linux为4字节(32位)8字节(64位)

long long 长长整形 8字节

2.sizeof关键字

可以求出数据类型所占内存大小 数据类型占用内存大小与所存的数据大小无关

语法:sizeof(数据类型/变量);

3.浮点型

作用:用于表示小数

float(单精度)4字节

double(双精度)8字节

系统默认创建小数是double,用float创建时需要加上f:float f1 = 3.14f;

默认情况下,输出一个小数会显示出六位有效数字

科学计数法:3e2表示300,3e-2代表0.03

4.字符型

char ch='a'; 1字节

注意事项:单引号而不是双引号 单引号内只能有一个字符,不能是字符串

字符型变量不是把字符本身存到内存中,而是将对应ASCII编码放入存储单元

输出字符型变量对应的ASCII编码: cout<<(int)ch<<endl; 含义为把ch强转为整型

ASCII 值 a-97 A-65

5.转义字符

作用:表示一些不能显示出来的ASCII字符

如

\n 换行

\t 水平制表符 \t表示了8个空格 起到对齐的效果

\\表示一个\符号

6.字符串型

注意要用双引号

C风格字符串: char 变量名 ="字符串值"

C++风格字符串:string 变量名 ="字符串值" 需要包含string头文件

7.布尔类型

bool类型只有两个值 1字节

true --真 (本质是1)

false -- 假 (本质是0)

8.数据的输入

作用:从键盘获取数据 整形,浮点,bool,字符,字符串都可以修改

语法:cin >> 变量

9.运算符

算数运算符

    • * /(两个整数相除,结果依然是整数,会将小数部分去除,不能除以0,两个小数可以相除,运算结果也是小数)

%(取余,两个小数之间不可取余)

++(前置,后置)

--(前置,后置)

前置:先变化,后进行表达式运算

后置:先进行表达式运算,后变化

赋值运算符

+=,-=,*=,/=,*=,%=

a+=2 相当于a = a+2

比较运算符

==相等于

!=不等于

<小于

>大于

<=小于等于

>=大于等于

逻辑运算符

!非

&&与 有假则假

||或 有真即真

程序流程结构

顺序流程,选择流程,循环流程

选择结构

1.if语句

if(){

}//单行if语句

if(){

}else{

}//多行if语句

if(){

}else if(){

}else if(){

}//多条件if语句

//嵌套if语句

2.三目运算符

c = (a>b?a:b); 如果a>b就把a赋值给c,否则就把b赋值给c

三目运算符返回的是变量,可以赋值

(a>b?a:b)=100;

3.switch语句

循环结构

满足循环条件就执行循环语句

while(循环条件){

}

do...while

do{

}while(循环条件);

for循环

for(起始表达式;条件表达式;末尾表达式){

循环语句

} 括号内的三个表达式都可以不写for(;;){}

跳转语句

break 用于直接跳出循环语句和选择语句

跳出循环:直接不进行循环,而不是更新条件继续运行

continue

在循环语句中,跳过本次循环中剩下的语句,然后进行下次循环

goto语句

用于跳过语句,图片中1,2运行后直接运行5

数组

数组特点:

数组中每个元素都是相同的数据类型

数组放在一块连续的内存空间中

1.数据类型 数组名数组长度;

2.数据类型 数组名数组长度 = {值1,值2};

3.数据类型 数组名\[\]={值1,值2};

定义数组时,必须有初始长度

如果在初始化时没有填写完数据,会用0填补剩余数据

一维数组数组名

1.可以统计整个数组在内存中的长度 使用 sizeof(数组名)

通过sizeof(arr)/ sizeof(arr0)可以计算出arr数组中元素个数

2.可以获取数组在内存中的首地址 cout<<数组名<<endl;

相关推荐
老王爱玩车13 分钟前
动态内存管理
c语言·开发语言·学习·面试
I'm Jie19 分钟前
【开源】7 天,我用 Rust 复刻了 FinalShell!Rhost v1.0.0 发布
开发语言·rust·开源
kimnoic36 分钟前
Python常用命令提示符使用方法详解
开发语言·python
Crazy________37 分钟前
05Linux内存管理核心原理与运维实战
java·开发语言
Nebula_g38 分钟前
JavaSE拓展:工具类Executors
java·开发语言·后端·spring·基础·javase
扶风ff1 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
程序员老陆1 小时前
C++ 多线程通信方式全景:从共享内存到结构化协调
开发语言·c++
weixin199701080161 小时前
《1688消息服务落地方案:alibaba.message.* 与 Webhook 回调的可靠性与重试策略》(附Python源码)
开发语言·python
ZHOUPUYU1 小时前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php
某不知名網友1 小时前
ROS2 核心通信:话题发布与订阅详解
开发语言·c++