一.C++简介
C++ 是一种编程语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
面向对象程序设计
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:
-
封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。
-
继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。
-
多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。
-
抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。
标准库
标准的 C++ 由三个重要部分组成:
- 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
- C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
- 标准模板库(STL),提供了大量的方法,用于操作数据结构等。
ANSI 标准
ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。
由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。
学习 C++
学习 C++,关键是要理解概念,而不应过于深究语言的技术细节。
学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统。
C++ 支持多种编程风格。您可以使用 Fortran、C、Smalltalk 等任意一种语言的编程风格来编写代码。每种风格都能有效地保证运行时间效率和空间效率。
C++ 的使用
C++ 语言在许多行业和领域都有广泛应用,包括:
-
游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。
-
嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。
-
金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。
-
图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。
-
科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。
二.C++环境设置
对于初学者来说,RedPanda(小熊猫)是不错的
RedPanda下载
链接:下载
下载说明
- Win11用户注意: 如果下载的安装程序被提示有病毒,请下载绿色版。
- Windows下载注意:
- 目前小熊猫C++最低要求windows 7操作系统。
- 从2.26版本开始,尝试提供Windows XP支持(感谢cynao.CN网友),可在百度网盘下载。
- 32位windows系统用户请下载win32版本;64位windows系统用户请下载win64版本。
- 安装版需要安装后使用;绿色版解压后直接运行RedPandaIDE.exe即可使用(推荐使用7zip软件解压)。
- 由于clang编译器(llvm-mingw项目)在中文编码支持、调试等方面存在诸多问题,不适合新手使用,不符合小熊猫C++作为新手IDE的定位,因此从1.1.2版起不再提供集成clang编译器的版本下载。
- 需要使用自带ege、海龟作图、freeglut/glew/glfw、raylib库的用户注意:
- 请下载带编译器的版本,因为这些库是直接集成在编译器中的。
- 可直接以单文件方式编译运行使用这些库C/C++程序文件,无需修改编译器设置
- 如果需要在项目中使用这些库,可以在创建项目时使用小熊猫C++中提供的项目模板
- 2.23版开始,EGE对应的项目模板由“多媒体”→“Graphics.h”改为“多媒体”→“EGE绘图”
- Linux下载注意:
- Debian 11用户请下载-debian11-版本
- 深度操作系统20版以上用户请下载-deepin20-版本
- ubuntu 20.04版用户请下载-ubuntu20-版本
- 可直接在shell中使用sudo apt install “deb文件完整路径"命令安装
- Linux版本均不包含编译器。在使用apt命令安装时会自动gcc和gdb
- MacOS下载注意:
- macos arm二进制包由网友RigoLigo提供
- 安装包没有签名,下载后需先使用
xattr -rc 安装包文件名
允许安装 - 安装包中不包含编译器。需使用homebrew安装gcc编译器
- 小熊猫C++仅支持gdb调试。因暂无arm版gdb,所以在macos arm版中无法使用调试功能。
三.第一个C++程序
输出"Hello, world!"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
导入<iostream>头文件,输入输出都能用到
命名空间(否则有些东西不能用)
int main()
开启主函数,别忘加大括号
cout输出"Hello, world!" endl是换行符
return 0 结束进程
四.输入和输出
1.输入(cin)
输入单个变量
cin>>变量名;
注:此处需导入<iostream>头文件
输入多个变量
//输入2个:
cin>>a>>b; //这里的a,b都是变量名
//输入4个
cin>>a>>b>>c>>d; //a,b,c,d也都是变量名
总结:先写cin,要输入的每个变量前面都加>>
例题:输入一个数字,再输出它
#include<iostream> //导入头文件
using namespace std; //命名空间
int a; //需要输入的变量
int main(){ //开启主函数
cin>>a; //输入a
cout<<a; //输出a(cout下文会讲)
return 0; //结束程序
}
2.输出(cout)
输出单个
cout<<a; //此处a为变量,可以是int类,也可以是char等
注意:cin后面加>> cout的后面是<<
输出多个
cout<<"ABCDEFG"<<" "<<1234567<<" "<<d; //d是一个变量
//先输出字符串类型的ABCDEFG,再输出一个空格,然后输出int类型的1234567,输出一个空格,最后输出变量d
总而言之,cout和cin写法很像,一个是>>变量 一个是<<变量(或常量)
不要混淆
五.运算符
1.计算类
加号+
很简单,格式:a+b
B=A+5 //将B赋值为A与5的和
A++ //A做自增(自身+1)
A+=7 //同A=A+7
减号-
B=A-5 //将B赋值为A与5的差
A-- //A做自增(自身-1)
A-=7 //同A=A-7(将A赋值为A-7)
先来个例题
输入一个整数A和一个整数B,请输出A与B的和 与 A与B的差
#include<iostream> //导入头文件
using namespace std; //命名空间
int A,B; //需要输入的变量
int main(){ //开启主函数
cin>>a>>b; //输入a,b
cout<<a+b<<endl; //输出a与b的和(endl是换行符)
cout<<a-b<<endl; //输出a与b的差
return 0; //结束程序
}
你答对了吗?
乘号*
不是数学中那样了,变成了*
格式:a*b
b=a*3 //将b设置为a的3倍
a*=3 //和a=a*3相同 ,自己乘3
a+b*c //乘法优先极高,先算b*c
你可以使用小括号() 来提高一部分算式的优先级,但在c++中,不论你嵌套多少层括号,都用小括号就行了,中括号和大括号是干别的事的
除号/
看过来,除号也和数学中的除号长得不一样了
而且,这里是/ 不是\
b=a/3 //将b设置为a除以3(a的三分之一)
a/=3 //和a=a/3相同,自己除三
//除法的优先级和乘法相同
别走,有一种特殊情况:余数
余数如果出现,你直接把它砍掉就行了
比如:9/2=4
4...1,砍掉余数,就是4
前方高能,瞪起眼睛好好看,很重要的!
取余%
取a除b的余数(很多方面都会用)
如:27%5=2
27除5,5余2,所以27%5=2
a%=20 //同a=a%20
//取余优先度也很高
做个题
题目描述
从键盘读入一个两位的整数n,请求出这个两位整数个位和十位的和是多少?
输入
一个两位的整数n。
输出
一个整数,代表n个位和十位的和。
题目分析
这个题就需要用到取余了,它的个位,可以%10来完成(仔细想,57%10=7)就是调取个位
十位呢,用除,因为除法正好能把余数吃掉,(想,57/10=5)就是调取十位上的数
是不是非常舒服,C++除法的特点完美的嵌入这个题中(Beautiful!)
代码
#include <iostream> //导入头文件
#include <cstdio>
using namespace std; //命名空间
int n,a,g,s; //定义变量(n是初始的二位数,a是个,十位之和,g是个位,s是十位)
int main(){ //主函数开启
cin>>n; //输入n
s=n/10; //按上面方法调取十位
g=n%10; //按上面方法调取个位
a=s+g; //计算十位与个位之和
cout<<a<<endl; //输出结果
return 0; //结束程序
}
2.关系运算符
关系运算符在判断完成后都会返回true或false(布尔值)
大于>
int a=5;
int b=10;
cout<<(a>b)<<endl; //a比b小,所以a>b不成立,输出false
小于<
int a=5;
int b=10;
cout<<(a<b)<<endl; //a比b小,所以a<b成立,输出true
等于==
int a=5;
int b=5;
cout<<(a==b)<<endl; //a和b一样大,所以a==b成立,输出true
大于等于>=
int a=11;
int b=10;
cout<<(a>=b)<<endl; //a比b大,所以a>=b成立,输出true
小于等于<=
int a=12;
int b=10;
cout<<(a<=b)<<endl; //a比b大,所以a<=b不成立,输出false
不等于!=
int a=5;
int b=10;
cout<<(a!=b)<<endl; //a不等于b,所以a!=b成立,输出true
你问括号是干啥的,增加代码可读性(让代码变的好看)
例题又来了
题目描述
从键盘读入一个两个整数a和b,请输出这个两位整数谁大?
输入
两个的整数a,b
输出
a>b 或 a<b 或 a==b
题目分析
这个题较为复杂,需要我们用到if判断
依次判断三种情况,并输出相应的结果
上文讲到,关系运算符在判断完成后都会返回true或false(布尔值),这就正好对上if的胃口了
if是什么
if在英文中是如果的意思,在C++里,它也是如果的意思,可以判断条件表达式,如结果为true,执行if里面的代码,否则不执行
示例:
if(条件表达式){
要执行的代码;
}
其实不难.
代码
#include <iostream> //导入头文件
#include <cstdio>
using namespace std; //命名空间
int a,b; //定义变量
int main(){ //主函数开启
cin>>a>>b; //输入a,b
if(a>b){
cout<<"a>b"; //判断a是否大于b
}
if(a<b){
cout<<"a<b"; //判断a是否小于b
}
if(a==b){
cout<<"a==b"; //判断a是否等于b
}
return 0; //结束程序
}
3.逻辑运算符
下文将会提及到if语句,在那个时候就会用到
与&&
同Python中的and,C++里也可以写and
衔接两个条件表达式
若结果都为true,返回true
若有1-2个表达式结果为false,则为false
或||
同Python中的or,C++里也可以写or
衔接两个条件表达式
若结果都为false,返回false
若有1-2个表达式结果为true,返回true
取反(非) !
同Python中的not,C++里也可以写not
取反一个条件表达式
若结果为true,返回false
若结果为false,则为true
这里先不放例题,下文讲if的时候放
好了各位,今天的C++菜鸟教程就到这里了,点赞收藏
大家也可以在评论区向我提出意见
C++菜鸟教程我两周更新一次,大家再见!
标签:教程,cout,int,菜鸟,cin,C++,输入,下载 From: https://blog.csdn.net/C_User1024/article/details/141183069