初识Cpp之 一、基础知识

一、基础知识

写在前面:在这个专题,我将会把自己学习Cpp的笔记整理为几个部分,与大家分享,主要的参考资料是B站上的课程链接如下:https://www.bilibili.com/video/BV1et411b73Z?p=237&vd_source=d02fb26eb2345ac42c054db0bb8d8864
主要的参考书籍是《Cpp Primer Plus》

(1)前言

​ C++融合了三种不同的编程方式:1、C语言代表的过程性语言,2、C++在C语言的基础上添加的类代表的面向对象语言,3、C++模板支持的泛型编程。使用C++的原因之一是为了利用其面向对象的特性。要利用这种特性,必须对标准C语言知识有较为深入的了解,因为它提供了基本类型、运算符、控制结构和语法规则。

​ 面向对象编程(Object Oriented Programming, OOP)的诞生,试图让语言来满足问题的要求,其理念是设计与问题本质特性相对应的数据格式。在C++中,类是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。OOP编程是将数据和方法合并为类定义,这样能起到信息隐藏的作用。多态能够让你为运算符和函数创建多个定义,通过编程上下文来确定使用哪个定义。继承能够让你使用旧类派生出新类。

​ 泛型编程(Generic Programming)是C++支持的另一种编程模式,OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。OOP是一个管理大型项目的工具,而泛型编程提供了执行常见任务的工具。

​ 名称C++来自C语言的递增运算符C++,该运算符将变量自加一。名称C++表明,它是C的扩充版本。

(2)C++源文件的拓展名

​ 具体使用什么拓展名取决于C++的实现,

C++实现拓展名
UnixC, cc, cxx, c
GNU C++C, cc, cxx, cpp, c++
Digital Marscpp, cxx
Borland C++cpp
Watcomcpp
Microsoft Visual C++cpp, cxx, cc
Metrowerks CodeWarriorcpp, cp, cc, cxx, c++

(3)一个Cpp程序的基本结构

#include <iostream>		//预处理编译指令#include
int main(void)			//主函数,程序入口
{						//函数体
	using namespace std;		//编译指令
	cout << "Come up and C++ me some time."; 
	cout << endl;
	cout << "You won't regret it!" << endl;
	return 0;
}

​ 为什么main()不能使用其他的名称?因为运行在C语言、C++程序时,通常从main()函数开始执行。因此,如果没有main(),程序将不完整,编译器将指出未定义main()函数。也存在一些例外情况,例如,在Windows编程中,可以编写一个动态链接库(DLL)模块,这是其他Windows程序可以使用的代码,但是DLL模块不是独立的程序,因此不需要main()

​ 在C++中,分号;标志了语句的结尾。因此,在C++中,回车的作用就和空格或制表符相同,也就是说在C++中,通常可以在能够使用回车的地方使用空格,既可以把语句放在几行之上,也可以把几条语句放在同一行上。

(4)Cpp关键字

asmdoifreturntypedef
autodoubleinlineshorttypeld
booldynamic_castintsignedtypename
breakelselongsizeofunion
caseenummutablestaticunsigned
catchexplicitnamespacestatic_castusing
charexportnewstructvirtual
classexternoperatorswitchvoid
constfalseprivatetemplatevolatile
const_castfloatprotectedthiswhile
continueforpublicthrowwhile
defaultfriendregistertrue
deletegotoreinterpret_casttry

(5)C++运算符

运算符描述示例结果
+算术运算符 + + +3 + 25
-算术运算符 − - 3 - 21
*算术运算符 × \times ×3 * 412
/算术运算符 / / /4 / 22
=赋值运算符=a = 1a = 1
%取模运算符 m o d mod mod10 % 31
++单目运算符++a=2;b=a++a=2;b=++aa=3;b=2a=3;b=3
--单目运算符--a=2;b=a--a=2;b=--aa=1;b=2a=1;b=1
sizeof单目运算符sizeofsizeof(int)4
&&逻辑运算符a=1;b=2; a==1 && b==21
||逻辑运算符a=1;b=2; a==1 || b==01
!逻辑运算符a=1;a!=10
and逻辑运算符
or逻辑运算符
not逻辑运算符
^位运算符^异或a=1;b=2;a=a^b;b=a^b;a=a^b;交换ab的值
.成员访问符.用于通过变量访问结构体成员,或访问类的成员struct book mybook; mybook.name访问book成员变量的name成员
->成员访问符->用于通过指针访问结构体成员,或访问类的成员
&取地址运算符&,引用运算符int a=2; int* b=&ab代表了a变量在内存中的存放地址
*解引用运算符*int a=2; int* b=&a; *b2
new内存分配运算符int* pt = new int;为指针pt分配了一个int大小的空间
delete内存分配运算符int* pt = new int; delete pt;回收了pt的内存空间
,逗号运算符int i, j;分隔声明的名称
?:三目运算符?:int a = 1 > 2? 1: 0;a的值为0

​ C++使用布尔常量值true、false而无需包含任何头文件,但是C语言需要包含stdbool.h后,才能够使用这两个布尔值常量。

​ C++标准提供了逻辑运算符的另一种表达方式,标识符and、or、not都是C++的保留关键字,但是它们不是C语言的保留关键字,若C语言需要使用这种方式则需要包括头文件iso646.h,C++不要求使用头文件。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值