news 2026/4/20 10:51:08

C++ 学习笔记---初识C++(后续会更新)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++ 学习笔记---初识C++(后续会更新)

C++模板

#include <bits/stdc++.h> //导入万能头文件 using namespace std; //使用标准的命名空间 int main(){ //主程序 return 0; //成功运行并结束程序 }

数据类型

数据类型表示举例所占字节范围
字符类型char‘a’ '0' '+'1
布尔类型bool0/flase 1/true10~1 即不成立~成立 非0即1
整数类型int1 12 123 21344-2147483648到2147483647
双精度浮点类型

double

1.0 145.0 135.2168815到16位有效数字
字符串string"123" "zm" "~~" "1z!"

数据类型的转换

1. 当两个相同的数据类型之间互相运算,得到的结果就是这个数据类型。

比如int 与 int 之间互相运算,得到的结果为int

double 与 double 之间互相运算,得到的结果为 double

2. 当两个不同的数据类型之间互相运算,得到的结果就需要根据实际情况来决定了。

类型转换分为两种:

(1) 隐性转换:两个不同数据类型的值互相运算,得到的结果为字节大的那个类型

例如:int 与 double 运算,结果为double类型

cout<<1+1.1; 输出为2.1

char 与 int 运算,结果为int类型

cout<<'a'+1; 输出98

(2) 强制转换:两个不同数据类型的值互相运算,得到的结果应该是字节大的那个类型,但我希望得到的类型为其他的类型,因此需要强制转换。

例如:int 与 double 运算,结果强制转换为int类型

cout<<(int)(1+1.1); 输出为2

char 与 int 运算,结果,结果强制转换为char类型

cout<<(char)('a'+1); 输出b

ASCLL码

ASCII(American Standard Code for Information Interchange),即美国信息交换标准代码,是一种用于表示字符的标准编码方式,主要用于英语字母和其他常见符号的数字化表达

只写常用的且需要背过的三个,其他的可以自行搜索“ASCLL码表”

'0'对应48 'A'对应65 'a'对应97

以此进行类推,比如'1'对应49 '2'对应50 'B'对应66 'b'对应98 等

大小写字母之间相差32 也就是 'a' - 'A' = 32

变量

  • 变量名的基本命名规则

    • 变量只能由数字、字母、下划线组成 且 数字不可以作为变量名开头
    • 不可以用C++的关键字作为变量名,关键字:
    • 在命名时,建议使用通俗易懂的名字命名
    • 变量名由多个单词组成的时候,建议采用“驼峰命名法”,每个单词的首字母大写
  • 变量名的定义

    • 四大要素:数据类型 变量名 赋值运算符 值
    • 一般来说分为两种情况:
      • 一种是一开始就知道这个变量的值
        //例如,学生有8个人。 //分析,变量名为学生studentNumber,存储的是学生数量8,值为整数类型int int studentNumber= 8; //例如,有个学生叫ZM //分析,变量名为学生名字studentName,存储的是学生姓名zm,值为字符串类型string string studentName = "zm";
      • 一种是需要在键盘上输入值存到变量
        //例如,需要从键盘上输入学生的年龄 //分析,需要一个变量studentAge来存储学生的姓名, // 年龄是整数int类型,然后通过cin输入进去。 int studentAge; cin>>name; //例如,需要从键盘上输入学生的姓名 //分析,需要一个变量studentName来存储学生的姓名, // 姓名是字符串string类型,然后通过cin输入进去。 string studentName; cin>>studentName;

当然变量名studentNumber也好,studentName也好,可以自己命名,要符合命名规则

在编程过程中,如果缺少变量,可以创造变量

输出

cout<<
  • 当输出的值是文本类型的时候,需要加双引号
  • 当输出的值是数字类型的时候,可以加双引号,也可以不加引号
  • 当输出的值是变 量的时候,不需要加双引号

保留n位小数后输出

cout<<fixed<<setprecision(n)<<shu;

换行

<<endl

输入

cin>>

运算符

赋值运算符赋值=age=10 name="zm"将等号右边的结果赋值到等号左边的变量
算数运算符加法+1+2 a+2 a+b两个数相加
减法-1-2 a-2 a-b两个数相减
乘法*1*2 a*2 a*b两个数相乘
除法/1*2 a*2 a*b两个数相除,除数不可以是0
求余%2%1 a%2 a%b两个数求余数,两个数必须是整数
关系运算符大于>2>1 a>2 a>b两个数比较,成立则为1,不成立为0
大于等于>=2>=1 a>=2 a>=b
小于<2<1 a<2 a<b
小于等于<=2<=1 a<=2 a<=b
比较等于==2==1 a==2 a==b
比较不等于!=2!=1 a!=2 a!=b
逻辑运算符与/并且&&条件A && 条件B有一个条件不满足,整个条件都不满足
或/或者| |条件A | | 条件B有一个条件满足,整个条件都满足
非/不是!! 条件A取到相反的结果

符合算数

运算符

加等+=a+=b相当于a=a+b
减等-=a-=b相当于a=a-b
乘等*=a*=b相当于a=a*b
除等/=a/=b相当于a=a/b
模等%=a%=b相当于a=a%b

实战环节---输入、输出与变量

题目一:打印三角形

在屏幕上输出一个这样的三角形

* *** *****
#include <bits/stdc++.h> using namespace std; int main(){ cout<<" *"<<endl; cout<<" ***"<<endl; cout<<"*****"<<endl; return 0; }

题目二:姓名与年龄

在键盘上输入学生的姓名和年龄,并输出“姓名为?,年龄为?”

输入案例:小A 13 输出案例:姓名为小A,年龄为13

输入案例:小B 31 输出案例:姓名为小B,年龄为31

#include <bits/stdc++.h> using namespace std; int main(){ string name; int age; cin>>name>>age; cout<<"姓名为"<<name<<",年龄为"<<age; return 0; }

易错解析:在输入的时候,这种写法是不被允许的

cin>>name="小A">>age=13;cin<<name,age;

题目三:数学计算

输入两个整数,将他们进行五个计算并输出结果

输入:13 3 输出: 13+3=16 13-3=10 13*3=39 13/3=4 13%3=1
#include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; cout<<a<<"+"<<b<<"="<<a+b<<endl; cout<<a<<"-"<<b<<"="<<a-b<<endl; cout<<a<<"*"<<b<<"="<<a*b<<endl; cout<<a<<"/"<<b<<"="<<a/b<<endl; cout<<a<<"%"<<b<<"="<<a%b<<endl; return 0; }

分支语句---if

单分支语句 if

如果(条件满足){ if(条件){
执行任务 任务;
} }

任务:如果满足天晴,那么出去玩 if(天晴){ 出去玩; } 任务:如果a大于10,那么输出a if(a>10){ cout<<a; }

双分支语句 if...else...

如果(条件满足){ if(条件){
执行任务A 任务A;
}否则{ }else{

执行任务B 任务B;

} }

任务:如果满足天晴,那么出去玩;否则待在家 if(天晴){ 出去玩; }else{ 待在家; } 任务:如果a大于10,那么输出a;否则输出no if(a>10){ cout<<a; }else{ cout<<"no"; }

多分支语句 if...else if...else...

如果(条件1满足){ if(条件1){
执行任务A 任务A;
}否则 如果(条件2满足){ }else if(条件2){

执行任务B 任务B;

} 否则{ }else{

执行任务C 任务C;

} }

任务:如果满足天晴,那么出去玩,否则如果下雨,那么室内玩;否则睡觉 if(天晴){ 出去玩; }else if(下雨){ 室内玩; }else{ 睡觉; } 任务:如果a大于10,那么输出大;否则如果a小于0,那么输出小;否则输出中 if(a>10){ cout<<"大"; }else if(a<0){ cout<<"小"; }else{ cout<<"中"; }

实战环节---分支语句---if

题目一:判断闰年

闰年条件:四年一闰,百年不闰,四百年再闰。

也就是:年份除以4能被整除 且 年份不能被100整除 或者 年份可以被400整除

C++表示:year%4==0 && year%100!=0 || year%400==0

输入:2000 输出:是闰年 输入:2001 输出:

#include <bits/stdc++.h> using namespace std; int main(){ int year; cin>>year; if(year%4==0 && year%100!=0 || year%400==0){ cout<<"是闰年"; } return 0; }

题目二:判读奇偶数

偶数条件,一个数除以2的余数为0,那么这个数为偶数;否则为奇数

输入:13 输出:奇数 输入:14 输出:偶数

#include <bits/stdc++.h> using namespace std; int main(){ int num; cin>>num; if(num%2==0){ cout<<"偶数"; }else{ cout<<"奇数"; } return 0; }

题目三:判断成绩

如果成绩0~59,那么不及格;如果成绩在60~89,那么及格;

如果成绩在90~100,那么优秀,否则成绩有误。

输入:13 输出:不及格 输入:68 输出:及格 输入:99 输出:优秀 输入:102 输出:成绩有误

#include <bits/stdc++.h> using namespace std; int main(){ int score; cin>>score; if(score>=0&&score<=59){ cout<<"不及格"; }else if(score>=60&&score<=89){ cout<<"及格"; }else if(score>=90&&score<=100){ cout<<"优秀"; }else{ cout<<"成绩有误"; } return 0; }

分支语句---switch

switch(变量/公式){
case 值1 :
任务A;
case 值2 :
任务B;
break;
default:
任务C;
}

注意:case和default 后面的符号为冒号:而不是分号 ;

*** switch语法具有穿透性 ***:满足一个条件后,一直向下执行,一直遇到break终止.

#include <bits/stdc++.h> using namespace std; int main(){ int num; cin>>num; switch(num){ case 1: cout<<"A"; break; case 2: cout<<"B"; case 3: cout<<"C"; break; case 4: case 5: case 6: cout<<"D"; break; case 7: cout<<"E"; default: cout<<"F"; } return 0; }

输入1时,输出A

输入2时,输出BC (穿透)

输入3时,输出C

输入4时,输出D (穿透)

输入5时,输出D (穿透)

输入6时,输出D

输入7时,输出EF (穿透)

输入其他数时。输出F

格式化输出

printf(格式化字符串,参量表);

格式化字符串

1. 字符串类型,需要加双引号

2. 占位符 %

%d

%ld

%lld

int类型

long类型

long long 类型

%nd:表示准备n个空间,将数字右对齐

%0nd:表示准备n个空间,将数字右对齐,左边补充0

%f

%lf

float类型

double类型

%.nlf:表示保留n位小数

3. 转义字符

\t制表位相当于键盘上的Tab键
\n换行相当于键盘上的Enter键,或者cout里的<<endl
int a = 33; //输出a并换行 printf("%d\n",a); //空5个格,输出a并右对齐 ,换行 printf("%5d\n",a); //空5个格,输出a并右对齐,左边空格补0 ,换行 printf("%05d\n",a); double b = 1.11177; //输出b并换行 printf("%lf\n",b); //保留3位小数后输出(默认四舍五入) printf("%.3lf\n",b);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 10:50:13

【LE Audio】ASCS精讲[7]: SDP互操作落地,蓝牙音频服务发现全解析

在LE Audio的技术体系中,Audio Stream Control Service作为音频流管理的核心服务,不仅深度适配低功耗蓝牙的LE链路,还兼顾了对传统蓝牙Basic Rate/Enhanced Data Rate的兼容支持。而SDP互操作性正是ASCS实现BR/EDR链路下设备间服务识别、通信协商的关键环节,相当于为BR/EDR…

作者头像 李华
网站建设 2026/4/20 10:48:27

八大网盘直链获取工具LinkSwift:轻松获取高速下载链接

八大网盘直链获取工具LinkSwift&#xff1a;轻松获取高速下载链接 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…

作者头像 李华
网站建设 2026/4/20 10:48:09

【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---论文

一、 什么是 AI Skills&#xff1a;从工具级到框架级的演化 AI Skills&#xff08;AI 技能&#xff09; 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初&#xff0c;Skills 被视为“工具级”的增强&#xff0c;如简单的文件读写或终端操作&#xff0c;方便用户快速…

作者头像 李华
网站建设 2026/4/20 10:46:46

抖音评论批量采集:三步获取完整用户反馈数据

抖音评论批量采集&#xff1a;三步获取完整用户反馈数据 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 你是否经常需要分析抖音视频的评论数据&#xff0c;却苦于手动复制粘贴效率低下&#xff1f;想要了解…

作者头像 李华