初识Cpp之 一、基础知识-程序员宅基地

技术标签: C\Cpp  c++  开发语言  

一、基础知识

写在前面:在这个专题,我将会把自己学习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++实现 拓展名
Unix C, cc, cxx, c
GNU C++ C, cc, cxx, cpp, c++
Digital Mars cpp, cxx
Borland C++ cpp
Watcom cpp
Microsoft Visual C++ cpp, cxx, cc
Metrowerks CodeWarrior cpp, 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关键字

asm do if return typedef
auto double inline short typeld
bool dynamic_cast int signed typename
break else long sizeof union
case enum mutable static unsigned
catch explicit namespace static_cast using
char export new struct virtual
class extern operator switch void
const false private template volatile
const_cast float protected this while
continue for public throw while
default friend register true
delete goto reinterpret_cast try

(5)C++运算符

运算符 描述 示例 结果
+ 算术运算符 + + + 3 + 2 5
- 算术运算符 − - 3 - 2 1
* 算术运算符 × \times × 3 * 4 12
/ 算术运算符 / / / 4 / 2 2
= 赋值运算符= a = 1 a = 1
% 取模运算符 m o d mod mod 10 % 3 1
++ 单目运算符++ a=2;b=a++a=2;b=++a a=3;b=2a=3;b=3
-- 单目运算符-- a=2;b=a--a=2;b=--a a=1;b=2a=1;b=1
sizeof 单目运算符sizeof sizeof(int) 4
&& 逻辑运算符 a=1;b=2; a==1 && b==2 1
|| 逻辑运算符 a=1;b=2; a==1 || b==0 1
! 逻辑运算符 a=1;a!=1 0
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=&a b代表了a变量在内存中的存放地址
* 解引用运算符* int a=2; int* b=&a; *b 2
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++不要求使用头文件。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44940689/article/details/126679811

智能推荐

【Unity API】3---GameObject_unity new gameobject()参数-程序员宅基地

文章浏览阅读425次。1.创建游戏物体的三种方法 public GameObject prefab; // Use this for initialization void Start () { //1.第一种创建方法 GameObject go = new GameObject("Cube"); //2.第二种 ,可以实例化特效或者角色等等 ..._unity new gameobject()参数

python知识图谱问答系统代码_医疗知识图谱问答系统探究(一)-程序员宅基地

文章浏览阅读522次。这是 阿拉灯神丁Vicky 的第 23 篇文章1、项目背景为通过项目实战增加对知识图谱的认识,几乎找了所有网上的开源项目及视频实战教程。果然,功夫不负有心人,找到了中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。用了两个晚上搭建了两套,Mac版与Windows版,哈哈,运行成功!!!从无到有搭建一个以疾病为..._chat_graph.py

hdu 3986 Harry Potter and the Final Battle(最短路+枚举删边)_3986 harry potter and the final battle 枚举+最短路(删掉任意-程序员宅基地

文章浏览阅读899次。Harry Potter and the Final BattleTime Limit: 5000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1741 Accepted Submission(s): 487Problem Descript_3986 harry potter and the final battle 枚举+最短路(删掉任意一条边的最长最短

python开发节目程序_python获取央视节目信息-程序员宅基地

文章浏览阅读342次。# -*- coding: utf-8 -*-#---------------------------------------# 程序:cctv节目表抓取# 作者:lqf# 日期:2013-08-09# 语言:Python 2.7# 功能:抓取央视的节目列表信息#---------------------------------------import stringimport..._python获取电视直播节目单

如何用C语言实现OOP-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏18次。我们知道面向对象的三大特性分别是:封装、继承、多态。很多语言例如:C++ 和 Java 等都是面向对象的编程语言,而我们通常说 C 是面向过程的语言,那么是否可以用 C 实现简单的面向对象..._c语言如何实现oop编程

Spark特征工程-one-hot 和 multi-hot_spark df one-hot-程序员宅基地

文章浏览阅读1k次。one-hot , multi-hot_spark df one-hot

随便推点

Dan Abramov - [Just JavaScript] 01 Mental Models(心智模型) 随便翻译一下_justjavascrpit-程序员宅基地

文章浏览阅读779次。是翻译的订阅邮件,非原创,下方有英文原文。看一下这段代码:let a = 10;let b = a;a = 0;运行后a和b的值是多少?在进一步阅读之前,先理解它。如果你已经写了一段时间的js,你可能会存疑:“我每天写的代码比这有难度多了,重点是啥?”本练习的目的不是要想你介绍这些变量,相反,假设你已经十分熟悉这些,本练习的目的是为了然你构建起相应的心智模型。什么是心智模型..._justjavascrpit

嵌入式系统的事件驱动型编程技术_[论文阅读笔记]区块链系统中智能合约技术综述...-程序员宅基地

文章浏览阅读276次。区块链系统中智能合约技术综述范吉立 李晓华 聂铁铮 于戈《计算机科学》2019年8月14页,56个参考文献框架1 引言2 区块链中的智能合约语言2.1 智能合约语言2.2 比特币脚本语言图2.3 以太坊灵完备型语言2.3.1 Solidity语言2.3.2 Serpent语言2.4 可验证型语言Pact2.5 超级账本智能合约语言2.6 开发语言的对比3 区块链中智能合约的实现技术3.1 嵌..._嵌入式事件驱动编程

python嵌入式开发实战_Python和PyQT来开发嵌入式ARM界面如何实现-程序员宅基地

文章浏览阅读386次。Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发1)。 简介随着Python在互联网人工智能领域的流行,大家也慢慢感受到Python开发的便利,本文就基于嵌入式ARM平台,介绍使用Python配合PyQT5模块来开发图形化应用程序。本文所演示的ARM平台..._qt for python可以写入嵌入式设备吗

python rabbitmq 多任务类型_rabbitmq常用的三种exchange类型和python库pika接入rabbitmq-程序员宅基地

文章浏览阅读108次。现在很多开源软件都提供了对应的web管理界面,rabbitmq也不例外,rabbitmq提供了一个web插件。当rabbit-server启动之后,即在浏览器中通过http://localhost:15672/地址访问页面,提供一个比命令rabbitmqctl更友好的学习rabbitmq的方式。可以简单方便的通过配置rabbitmq,并可以向exchange和queue中发消息来验证自己的理解。如..._python rabbitmq exchange_bind

关于达梦数据库数据迁移工具的使用方法(DTS)_达梦迁移工具使用方法-程序员宅基地

文章浏览阅读5.1k次。达梦DTS工具的使用,适用于简单的数据迁移_达梦迁移工具使用方法

java上传文件到文件夹判断文件夹是否存在,不存在则创建_java nas 上传文件夹不存在-程序员宅基地

文章浏览阅读4.2k次。// 判断文件夹是否存在 public static void judeDirExists(File file) { if (file.exists()) { if (file.isDirectory()) { System.out.println("dir exists"); } else {_java nas 上传文件夹不存在

推荐文章

热门文章

相关标签