❤作者:那些年丶我们逃过的课
❤博客主页:那些年丶我们逃过的课的博客_CSDN博客-c++题目,c++学习记录,c++小游戏领域博主
❤码云gitee:我的码云 - Gitee.com
❤期待你的关注,如果觉得还可以的话,可以点赞评论支持一下,每个评论我都会回访的🎉
目录:
1.教程简介
本文是 那些年丶我们逃过的课 根据各种教程总结的c++基础教程🎉,可以让新手小白快速入门🎊。
新人博主,如文章有何问题,请大佬指出🙏
总结不易,如果觉得还行的话,请不要吝惜你的点赞👍,谢谢各位大佬了🎈
本教程适用人群:c++的初学者,帮助他们快速入门。
本文大量参考于:C++ 教程 | 菜鸟教程 (runoob.com)新手跟着这里面学习也是很方便的
2.c++初步了解
2.1c++简介
[C++](C++_百度百科 (baidu.com))是一种计算机高级程序设计语言,由C语言扩展升级而产生 ,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。
C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
总的来说,c++是c语言的升级版,更加实用和简便。
在众多编程语言中,c++不是最简单的,但是确实数一数二的非常实用的,里面包含的各种库提供了丰富的功能。
2.2我的第一个程序
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl; //程序从这里开始执行
return 0;
}
效果:
press any key to exit… 点击任意键退出
- using namespace std; 使用 std 命名空间。
- int main()是主函数,程序从这里开始执行。
- cout << “Hello World”;会在屏幕上显示消息 “Hello World”。
- return 0;终止 main( )函数,并向调用进程返回值 0。
- //或 ∗ ∗ * * ∗∗可以注释文本,详见2.5注释
2.3标准库
标准的 C++ 由三个重要部分组成:
- 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
- C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
- 标准模板库(STL),提供了大量的方法,用于操作数据结构等。
2.4编译器及编译环境
目前主流的编译器有:**MSVC、GCC、Cygwin、MinGW、Visual Studio、Dev-c++**等等
可以选择免费的编译器,也可以为了实用性,实用付费的编译器。
编译环境新手不需要做过多了解。
需要详细了解的可以参考:
2.5注释
- 单行注释://+注释内容
- 多行注释: ∗ * ∗+注释内容+ ∗ * ∗
注释内容可以被你看见但是系统不会运行注释内容
3.c++数据类型
3.1数据类型
类型 | 关键字 |
---|---|
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
宽字符型新手不需要学习。
一些基本类型可以使用一个或多个类型修饰符进行修饰:
- signed 符号型
- unsigned 无符号型
- short 短型
- long 长型
例如: long int、unsigned long int等
3.2数据类型占用空间大小
类型 | 位 | 范围 |
---|---|---|
char | 1 个字节 | -128 到 127 或者 0 到 255 |
unsigned char | 1 个字节 | 0 到 255 |
signed char | 1 个字节 | -128 到 127 |
int | 4 个字节 | -2147483648 到 2147483647 |
unsigned int | 4 个字节 | 0 到 4294967295 |
signed int | 4 个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int | 8 个字节 | 0 到 18,446,744,073,709,551,615 |
float | 4 个字节 | 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字) |
double | 8 个字节 | 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字) |
long double | 16 个字节 | 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。 |
wchar_t | 2 或 4 个字节 | 1 个宽字符 |
3.3变量
变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。
变量的名称可以由字母、数字和下划线字符组成,并且不能是关键字。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C++ 是大小写敏感的。
tip:关键字:各种数据类型、函数名等等(大小写不一样就不算关键字了)
变量声明:
3.4常量
一下可进行了解,不必深究:
常量声明:
在 C++ 中,有两种简单的定义常量的方式:
- 使用 #define 预处理器。
- 使用 const 关键字。
- #define + 常数名 + 常数
- const + 数据类型 +常量名 = 常数
4.运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,新手需要了解如下运算符:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符(只需了解,以后要讲)
4.1算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个操作数相加 | A + B 将得到 30 |
- | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
* | 把两个操作数相乘 | A * B 将得到 200 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 取模运算符,整除后的余数 | B % A 将得到 0 |
++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
– | 自减运算符,整数值减少 1 | A-- 将得到 9 |
4.2关系运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 不为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (A > B) 不为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (A < B) 为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (A >= B) 不为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (A <= B) 为真。 |
4.3逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
&& | 称为逻辑与运算符。如果两个操作数都 true,则条件为 true。 | (A && B) 为 false。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。 | (A || B) 为 true。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。 | !(A && B) 为 true。 |
4.4位运算符(只做了解)
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与操作,按二进制位进行"与"运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; | (A & B) 将得到 12,即为 0000 1100 |
| | 按位或运算符,按二进制位进行"或"运算。运算规则:`0 | 0=0; 0 |
^ | 异或运算符,按二进制位进行"异或"运算。运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0; | (A ^ B) 将得到 49,即为 0011 0001 |
~ | 取反运算符,按二进制位进行"取反"运算。运算规则:~1=-2; ~0=-1; | (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。 |
<< | 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 | A << 2 将得到 240,即为 1111 0000 |
>> | 二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。 | A >> 2 将得到 15,即为 0000 1111 |
5.头文件
头文件引用方法:
#include<头文件名>
详细的头文件介绍及作用见:C++头文件的作用以及用法_陌千浔的博客-CSDN博客_c++头文件
6.输入输出流
使用输入输出流(cin、cout)需要引用iostream头文件
istream:常用于接收从键盘输入的数据;
ostream:常用于将数据输出到屏幕上;
ifstream:用于读取文件中的数据;
ofstream:用于向文件中写入数据;
iostream:继承自 istream 和 ostream 类,因为该类的功能兼两者于一身,既能用于输入,也能用于输出;
fstream:兼 ifstream 和 ofstream 类功能于一身,既能读取文件中的数据,又能向文件中写入数据。
————————————————
原文链接:https://blog.csdn.net/ccc369639963/article/details/122905471
#include<iostream>
using namespace std;
int main(){
int a;
cout<<"输入:";
cin>>a;
cout<<"输出:";
cout<<a;
return 0;
}
实现效果:
定义一个整型a,键盘输入a,再在屏幕上打印出a
7.分支语句
分支语句分为种:
- if-else
- switch
7.1if-else语句
if语句1:
if(条件1)
{
执行语句1
}
else
{
执行语句2
}
if语句2:
if(条件1)
{
执行语句1
}
else if(条件2)
{
执行语句2
}
else
{
执行语句3
}
tip:else if可以无限添加,分成你想要的分支
7.2switch语句
switch(一个变量)
{
case 条件1:执行语句1;break;//加break是为了执行完这一种情况后不会再执行下面的语句
case 条件2:执行语句2;break;
case 条件3:执行语句3;break;
default:执行语句4; //如果上面条件都不满足,就执行语句4
}
8.循环
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
循环类型基本有4种:
- for循环
- while循环
- do-while循环
- 嵌套循环
循环类型 | 描述 |
---|---|
while 循环 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
for 循环 | 多次执行一个语句序列,简化管理循环变量的代码。 |
do-while 循环 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
嵌套循环 | 您可以在 while、for 或 do…while 循环内使用一个或多个循环。 |
循环控制语句:
控制语句 | 描述 |
---|---|
break 语句 | 终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。 |
continue 语句 | 引起循环跳过主体的剩余部分,立即重新开始测试条件。 |
goto 语句 | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 |
8.1for循环
for(设置变量;循环条件;每次循环后执行语句2)
{
执行语句1;
}
#include<iostream>
using namespace std;
int main(){
for(int i=1;i<=5;i++)//i从1开始循环,每次循环后i加1,直到i大于5结束
{
cout<<i<<endl;//每次循环输出i,endl为换行
}
return 0;
}
tip:死循环: f o r ( ; ; ) for(;;) for(;;)
8.2while循环
while(条件)//如果满足条件,则执行,如果不满足,则退出循环
{
执行语句;
}
#include<iostream>
using namespace std;
int main(){
int i=1;
while(i<=5)//如果i小于等于5,则执行,如果不满足,则退出循环
{
cout<<i<<endl;
i++;
}
return 0;
}
tip:死循环:while(1)
8.3do-while循环
do{//先执行语句
执行语句;
}while(循环条件);//如果满足条件,继续执行
#include<iostream>
using namespace std;
int main(){
int i=1;
do{
cout<<i<<endl;
i++;
}while(i<=5);
return 0;
}
8.4嵌套循环
for循环嵌套:
for(设置变量;循环条件;每次循环后执行语句)
{
for(设置变量;循环条件;每次循环后执行语句)
{
执行语句;
}
执行语句;
}
while循环嵌套:
while(条件)
{
while(条件)
{
执行语句;
}
执行语句;
}
do-while循环嵌套:
do{
执行语句;
do
{
执行语句;
}while(条件);
}while(条件);
8.5循环控制语句
控制语句 | 描述 |
---|---|
break 语句 | 终止 当层循环 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。 |
continue 语句 | 引起循环跳过主体的剩余部分,立即重新开始测试条件。 |
goto 语句 | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 |
tip:break只能结束当层循环,也就是只能结束掉一个for或一个while(do-while),嵌套循环需要break多次,每次一层
9.数组
数组定义:
变量类型 数组名称[数组大小]
注意:定义数组要多定义一些,比如int a[5],你不能操作a[5],因为这样定义只定义了a[0]到a[4]共5个
初始化数组:
int a[5]={1,2,3,4,5}
如果[ ]内不填数字,则后面{ }初始化中有多n个就会默认定义a[n+1]
#include <iostream>
using namespace std;
int main ()
{
int n[10];
// 初始化数组元素
for (int i=0;i<10;i++)
{
n[i]=i+100; // 设置i为i+100
}
// 输出数组中每个元素的值
for (int j=0;j<10;j++)
{
cout<<j<<" "<<n[j]<<endl;
}
return 0;
}
10.字符串
字符串有两种定义方式:
- 数组定义cstring
- c++标准库中的string
10.1cstring
定义:
char a[6] = {'h', 'e', 'l', 'l', 'O','\0'};
\0为字符串结尾,系统检测到后会认为字符串到此结束
也可以这么写:
char b[] = "hello";
#include<iostream>
using namespace std;
int main(){
char a[6] = {'h', 'e', 'l', 'l', 'O','\0'};
char b[] = "hello";
cout<<a<<endl<<b;
return 0;
}
在引用cstring头文件来操作数组:
#include<cstring>
序号 | 函数 & 目的 |
---|---|
1 | strcpy(s1, s2); 复制字符串 s2 到字符串 s1。 |
2 | strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。连接字符串也可以用 + 号,例如: string str1 = "runoob"; string str2 = "google"; string str = str1 + str2; |
3 | strlen(s1); 返回字符串 s1 的长度。 |
4 | strcmp(s1, s2); 如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。 |
5 | strchr(s1, ch); 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。 |
6 | strstr(s1, s2); 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。 |
10.2string
使用string要先引用string头文件
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str1 = "runoob";
string str2 = "google";
string str3;
int len ;
// 复制 str1 到 str3
str3 = str1;
cout << "str3 : " << str3 << endl;
// 连接 str1 和 str2
str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// 连接后,str3 的总长度
len = str3.size();
cout << "str3.size() : " << len << endl;
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
str3 : runoob
str1 + str2 : runoobgoogle
str3.size() : 12
11.函数
函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
内容较丰富,详解可见:C++函数详解_问号小朋友的博客-CSDN博客_c++函数,这篇博客总结得比较好,建议看看
#include <iostream>
using namespace std;
// 函数声明
int max(int num1, int num2);
int main ()
{
// 局部变量声明
int a = 100;
int b = 200;
int ret;
// 调用函数来获取最大值
ret = max(a, b);
cout << "Max value is : " << ret << endl;
return 0;
}
// 函数返回两个数中较大的那个数
int max(int num1, int num2)
{
// 局部变量声明
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
12.总结
本教程到此结束了,如果觉得还行的,请留下你的三连😁,谢谢支持!
本文大量参考于:C++ 教程 | 菜鸟教程 (runoob.com)