> 文档中心 > c++超详细基础教程(快速入门)

c++超详细基础教程(快速入门)


❤作者:那些年丶我们逃过的课

❤博客主页:那些年丶我们逃过的课的博客_CSDN博客-c++题目,c++学习记录,c++小游戏领域博主

❤码云gitee:我的码云 - Gitee.com

❤期待你的关注,如果觉得还可以的话,可以点赞评论支持一下,每个评论我都会回访的🎉

目录:

  1. 教程简介
  2. c++初步了解
    1. c++简介
    2. 我的第一个程序
    3. 标准库
    4. 编译器及编译环境
    5. 注释
  3. c++数据类型
    1. 数据类型
    2. 数据类型占用空间大小
    3. 变量
    4. 常量
  4. 运算符
    1. 算数运算符
    2. 关系运算符
    3. 逻辑运算符
    4. 位运算符
  5. 头文件
  6. 输入输出流
  7. 分支语句
    1. if-else语句
    2. switch语句
  8. 循环
    1. for循环
    2. while循环
    3. do-while循环
    4. 嵌套循环
    5. 循环控制语句
  9. 数组
  10. 字符串
    1. cstring
    2. string
  11. 函数
  12. 总结

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 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++**等等

可以选择免费的编译器,也可以为了实用性,实用付费的编译器。

编译环境新手不需要做过多了解。

需要详细了解的可以参考:

  1. 【c/c++】C/C++的编译器|编译环境(非常全面的比较)_StudyWinter的博客-CSDN博客_c++编译环境
  2. C++编译环境_na.na的博客-CSDN博客

2.5注释

  1. 单行注释://+注释内容
  2. 多行注释: ∗ *+注释内容+ ∗ *

注释内容可以被你看见但是系统不会运行注释内容


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 关键字。
  1. #define + 常数名 + 常数
  2. 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

#includeusing namespace std;int main(){    int a;    cout<>a;    cout<<"输出:";    cout<<a;    return 0;}

实现效果:

定义一个整型a,键盘输入a,再在屏幕上打印出a

在这里插入图片描述


7.分支语句

分支语句分为种:

  1. if-else
  2. 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.循环

有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

在这里插入图片描述

图片引用自:C++ 循环 | 菜鸟教程 (runoob.com)

循环类型基本有4种:

  1. for循环
  2. while循环
  3. do-while循环
  4. 嵌套循环
循环类型 描述
while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环 多次执行一个语句序列,简化管理循环变量的代码。
do-while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环 您可以在 while、for 或 do…while 循环内使用一个或多个循环。

循环控制语句:

控制语句 描述
break 语句 终止 loopswitch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。
continue 语句 引起循环跳过主体的剩余部分,立即重新开始测试条件。
goto 语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

8.1for循环

for(设置变量;循环条件;每次循环后执行语句2){    执行语句1;}
#includeusing 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(条件)//如果满足条件,则执行,如果不满足,则退出循环{    执行语句;}
#includeusing 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(循环条件);//如果满足条件,继续执行
#includeusing 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 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.字符串

字符串有两种定义方式:

  1. 数组定义cstring
  2. c++标准库中的string

详解见:C++ 字符串 | 菜鸟教程 (runoob.com)

10.1cstring

定义:

char a[6] = {'h', 'e', 'l', 'l', 'O','\0'};

\0为字符串结尾,系统检测到后会认为字符串到此结束

也可以这么写:

char b[] = "hello";
#includeusing namespace std;int main(){    char a[6] = {'h', 'e', 'l', 'l', 'O','\0'};    char b[] = "hello";    cout<<a<<endl<<b;    return 0;}

在这里插入图片描述

在引用cstring头文件来操作数组:

#include
序号 函数 & 目的
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;如果 s1s2 则返回值大于 0。
5 strchr(s1, ch); 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6 strstr(s1, s2); 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

10.2string

使用string要先引用string头文件

#include #include  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 : runoobstr1 + str2 : runoobgooglestr3.size() :  12

11.函数

函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

内容较丰富,详解可见:C++函数详解_问号小朋友的博客-CSDN博客_c++函数,这篇博客总结得比较好,建议看看

#include 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 < num2)      result = num1;   else      result = num2;    return result; }

在这里插入图片描述


12.总结

本教程到此结束了,如果觉得还行的,请留下你的三连😁,谢谢支持!

本文大量参考于:C++ 教程 | 菜鸟教程 (runoob.com)