C/C++教程

最全C/C++教程 你需要的全都有!

本文主要是介绍最全C/C++教程 你需要的全都有!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

可以关注微信公众号“C和C加加”回复“ZXC”即可免费获取更多相关教程

本文如有错误请多包涵!

image.png

一. 简介

C语言是结构化和模块化的语言,面向过程。

C++保留了C语言原有的所有优点,增加了面向对象的机制,俗称“带类的C",1983年更名为C++

二.开发工具

关注微信公众号  “C和C加加”  回复  “开发工具”  即可免费领取1和2

1.Dev-C++

Dev-C++ 是一个C++ 开发工具。它包括多页面窗口、工程编辑器,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序。它也提供高亮度语法显示的,以减少编辑错误。Dev-C++是一个Windows下的C和C++程序的集成开发环境。它使用MingW32/GCC编译器,遵循C/C++标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!

edbf6d7e48cfec4223a603d9108c334a.png

2.Microsoft Visual stdudio

Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。

Visual Studio是Windows平台应用程序的集成开发环境。最新版本为 Visual Studio 2019 版本,基于.NET Framework 4.8 。

22f95861201df050236cbfee4ed426e6.png

3.Clion

CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,同时还包含了许多智能功能来提高开发人员的生产力。CLion专为使用C和C ++以及Kotlin / Native,Rust和Swift进行的本机跨平台开发而设计。它还提供对CMake语言,Python,流行的Web技术(如JavaScript,XML,HTML,Markdown等)的基本支持,并且还包括对捆绑包和存储库插件可用的所有其他语言的支持。(提供激活码公众号回复“激活码”即可获取最新激活码)

三.基本语法

  • 对象-对象具有状态的行为。对象是类的实例。

  • 类-类可以定义为对象行为、状态的模版。

  • 方法-从基本上讲,一个方法表示一种行为,一个类可以包含多种方法。

  • 变量

1.注释

//单行注释
/*
多行注释
多行注释
*/

2.关键字

e0300c6b8bbff2c524ba0cdc26522c03.png

f97c792c4475841504f0c3609175dd37.png

3.标识符

标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言。

四.数据类型

1.基本数据类型

七种基本的C++数据类型:bool、char、int、float、double、void、wchar_t

类型修饰符:signed、unsigned、short、long

注:一些基本类型可以使用一个或多个类型修饰符进行修饰,比如:signed short int简写为short、signed long int 简写为long。

68254fb231d6c1e110d4ca94d19dfea6.png

2 数据类型在不同系统中所占空间大小

这个与机器、操作系统、编译器有关。比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。

原因:

  • c/c++规定int字长和机器字长相同

  • 操作系统字长和机器字长未必一致

  • 编译器根据操作系统字长来定义int字长

注:long类型在不同编译器中的占位不一样: 32位时,VC++和GCC都是4字节; 64位时,VC++是4字节,GCC是8字节。

3 typedef声明

//使用typedef为一个已有的类型取一个新的名字,语法如下:
typedef type newname
//eg:
typedef int feet
feet distance

4 枚举类型

C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合;枚举元素是一个整型,枚举型可以隐式的转换为int型,int型不能隐式的转换为枚举型。

//枚举类型的语法:
enum 枚举名{
标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
}枚举变量;

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始;

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。

例如:

enum course {math,chinese,english,physics,chemistry}c;
c = english;
cout<<c<<endl;  //2
//english为1 physics为2 chemistry为3,chinese仍为1,math仍为0
enum course {math,chinese,english=2,physics,chemistry};

五. 变量

变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。

1 变量的声明和定义

变量声明向编译器保证变量以给定的类型和名称存在,这样编译器在不需要知道变量完整细节的情况下也能继续进一步的编译。

可以在 C++ 程序中多次声明一个变量,但变量只能在某个文件、函数或代码块中被定义一次。

多个变量赋同一个值时,需要分别赋值。

2 变量的作用域

局部变量:在函数或一个代码块内部声明的变量,称为局部变量。它们只能被函数内部或者代码块内部的语句使用。

全局变量:在所有函数外部定义的变量(通常是在程序的头部),称为全局变量。全局变量的值在程序的整个生命周期内都是有效的。

局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。

当局部变量被定义时,系统不会对其初始化;定义全局变量时,系统会自动初始化值:int float double 0,char ’\0‘,指针 NULL

六.运算符

  • 算术运算符:+ - * / % ++ --

  • 关系运算符:== != < > >= <=

  • 逻辑运算符:&& || !

  • 位运算符:& | ^ ~ << >>

  • 赋值运算符:= += -= *= /= %= <<= >>= &= ^= !=

  • 杂项运算符:

  • 运算符优先级

f91419dd2823de8d6d59e239f2b1f6ea.png

七.语法结构

1. 循环结构

  • while

  • for

  • for each

STL中的for增强循环。

2 判断结构

9e65bad501351d343f6819361c4be605.png

3 .运算符

951f68fb3837c7772efbf90760534ec9.png

4. 预处理命令

预处理程序(删除程序注释,执行预处理命令等)–>编译器编译源程序

  • 宏定义:#define 标识符 字符串

  • 文件包含:#include<filename> 或者#include“filename”

  • 条件编译

八.数组

一些具有相同数据类型或相同属性(类)的数据的集合,用数据名标识,用下标或序号区分各个数据。数组中的数据称为元素。

1.一维数组

定义一维数组的形式:数据类型 数据名[常量表达式]

初始化的形式:数据类型 数组名[常量表达式] = {初值表};

为数组的某一个元素赋值:数组名[下标] =值(下标从0开始)

数组的引用:数组名[下标]

  • 初始化数组时,可以只给部分数组元素赋值

  • 对全部元素数组赋值时,可以不指定数组长度,编译系统会根据初值个数确定数组的长度。

  • static型数组元素不赋初值,系统会自动默认为0。

2.二维数组

定义一维数组的形式:数据类型 数据名[常量表达式1][常量表达式2]

初始化的形式:数据类型 数组名[常量表达式1] [常量表达式2]= {初值表};

为数组的某一个元素赋值:数组名[行下标][列下标] =值(下标从0开始)

数组的引用:数组名[行下标][列下标]

  • 将所有数据写在一个花括号内,自动按照数组元素个数在内存中排列的顺序赋值

  • 可对部分元素赋值,其余元素的值自动取0.

  • 定义初始化数组时,可以省略第一维的长度,第二维不能省,系统会自动确认行数

 3. 指向数组的指针

指针的详细讲解如下图。

17842e22c09a59edbf7f9da4cdb2aa94.png

九.函数

 函数是实现模块化程序设计思想的重要工具, C++程序中每一项操作基本都是由一个函数来实现的,C++程序中只能有一个主函数(main)

1 函数声明与定义

函数类型-函数的返回值类型;函数名-必须符合C++标识符命名规则,后面必须跟一对括号;函数体-实现函数功能的主题部分;参数列表-函数名后面的括号内,用于向函数传递数值或带回数值。

函数声明中,参数名可以省略,参数类型和函数的类型不能省略。

函数声明可以放在主调函数内部,放在调用语句之前;也可以放在主调函数外,如果位于所有定义函数之前,后面函数定义顺序任意,各个主调函数调用也不必再做声明

当函数定义在前,函数调用灾后,可以不用函数声明。

后两条总结一下就是:调用函数前,程序得知道有这个函数,声明就是提前让程序知道有这么的玩意

1e42f3f61ca1e410cf97269767c72c92.png十. 字符串

1 C风格的字符串(字符数组)

C风格的字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。

2 C++中的字符串(string)

064a78df7cdf660a380d4adc88905d94.png

未完待续~~~~~~

更多免费视频教程可以关注微信公众号“C和C加加”回复“ZXC”即可免费获取


这篇关于最全C/C++教程 你需要的全都有!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!