【温故而知新】C和C++和其舞台1、创世纪

简介: 【回想起来,从当年在电脑培训班第一次接触C语言至今已经过去了10个年头,期间经历了高考、大学时期的迷茫,导致了学习编程的最黄金时间被耽误了,以至于时至今日,虽然已软件开发工程师的身份混一口饭吃,但是始终感觉自己的底子太薄,难登大雅之堂。

【回想起来,从当年在电脑培训班第一次接触C语言至今已经过去了10个年头,期间经历了高考、大学时期的迷茫,导致了学习编程的最黄金时间被耽误了,以至于时至今日,虽然已软件开发工程师的身份混一口饭吃,但是始终感觉自己的底子太薄,难登大雅之堂。最终下定决心,从头开始重新复习,熟悉的内容一笔带过,不熟悉的内容着重查缺补漏,以求让自己在以后的工作中更少地犯一些低级错误就够了。】

1、你们是猴子请来的救兵么?

所谓C语言,是由美国贝尔实验室的Dennis·Ritchie在1972年提出,并在随后迅速传播至IT界的各个领域,已经成为了全世界程序员的“世界语”,还派生出了两种更加强大、影响更为深远的编程语言:C++和Java。因此,说C语言是当代编程语言的根基是一点都不为过的。C语言的语法其实相当的简单,归根结底只有宏、指针、结构体、数组和函数几部分组成,无论多么复杂的功能都是由它们的组合完成。

C++与C的区别其实是非常非常大的。C++相对于C最显著的特点就是其面向对象的特性,但是由于二者的语法结构几乎一致,而且常用的C++编译器几乎全部无条件支持C语言,因此很多初学者(包括当年的我自己)都会对其感到极为的困惑,以至于用“C++”编写的程序中还杂糅这大量的C语言成分。在C++中,类是所有语法的核心,在其基础上,具备了公有/私有/保护型成员、函数重载、构造/析构函数、内联函数、引用、友元、模板、异常、命名空间等特性。惊恐怎一个头大了得……

2、代码文件

其实二者的区别不大,C语言的源文件后缀名是.c,而C++的源文件后缀名是.cpp,二者的头文件一般都是.h,据说有些系统中C++的头文件后缀可能是.hpp?反正我从来没遇见过……恕某孤陋寡闻。

3、控制台输入输出

C语言一般都会使用标准输入输出函数printf和scanf,要求include “stdio.h”;C++中一般常用流输入输出,cin和cout,包含头文件include <iostream.h>。其实深究起来,流操作还有很多很复杂的东西,以后再讨论。

4、动态分配内存

C语言和C++都支持在堆内存区域手动分配内存空间。对于C来说,使用的是内存分配函数malloc和calloc,释放分配的内存则需要free函数;对于C++,分配内存使用new操作符,释放内存使用delete操作符。也可以因此分配或者删除多个内存单元:

int *p, *p10, *pArr;
p = new int;
p10 = new int(20);
pArr = new int [10];//分配10个int长度的内存单元
delete p;
delete p10;
delete [10] pArr;
5、引用数据类型

引用数据类型通常在定义引用时在变量前面加上&,同时必须制定它要引用的值;

int a;
int &b = a;
这样a和b就代表着同一个变量,改变其中一个同时也会改变另一个。引用数据类型常常用在函数的参数中,对需要改变的输出参数常常声明成引用类型,方便在函数内部修改。

6、const类型

const所修饰的类型为常类型,必须在定义的时候指定内容,而且未来不允许修改;

(1)一般常量:

在定义一般数据类型时,在前面加上const就可以定义某种类型的常量,如:

const int n = 20;
char cArr[n];//C++编译器允许,C编译器会报错;
(2)常指针和常引用:

需要注意,常指针和指向常量的指针绝不是同一个概念,很多公司笔试的时候会着重考察这一点。具体什么区别,查书去吧,O(∩_∩)O哈哈~。

(3)常成员函数:

在C++中可以定义常常成员函数。只有常成员函数才能操作常量或常对象。


目录
相关文章
|
4月前
|
前端开发 JavaScript 数据可视化
元宇宙基础案例 | 大帅老猿threejs特训
元宇宙基础案例 | 大帅老猿threejs特训
|
6月前
|
JavaScript Java
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
67 0
|
7月前
|
C++
你们想要的开源的冰墩墩模型来了!! 先睹为快!实现冰墩墩自由!
你们想要的开源的冰墩墩模型来了!! 先睹为快!实现冰墩墩自由!
96 0
|
10月前
|
前端开发
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
85 0
|
11月前
|
机器学习/深度学习 计算机视觉 网络架构
有手就行?把大象P转身只需拖动鼠标,华人一作DragGAN爆火(1)
有手就行?把大象P转身只需拖动鼠标,华人一作DragGAN爆火
138 0
|
11月前
|
机器学习/深度学习 编解码
有手就行?把大象P转身只需拖动鼠标,华人一作DragGAN爆火(2)
有手就行?把大象P转身只需拖动鼠标,华人一作DragGAN爆火
|
11月前
1024里的小温暖,用技术让生活变得更美好 | 有彩蛋!
1024里的小温暖,用技术让生活变得更美好 | 有彩蛋!
【“玩物立志”-scratch少儿编程】迷宫游戏-图片素材
【“玩物立志”-scratch少儿编程】迷宫游戏-图片素材
188 0
【“玩物立志”-scratch少儿编程】迷宫游戏-图片素材
【“玩物立志”-scratch少儿编程】亲手实现小猫走迷宫小游戏:其实挺简单
【“玩物立志”-scratch少儿编程】亲手实现小猫走迷宫小游戏:其实挺简单
640 0
【“玩物立志”-scratch少儿编程】亲手实现小猫走迷宫小游戏:其实挺简单
|
API 定位技术 C++
【致敬童年】Funcode实现坦克大战
【致敬童年】Funcode实现坦克大战