c语言 malloc_C语言数据结构 | 第一讲

18cef534492749dd71cce1ca4884070e.png

307a67424fbfc42194a546430fdd410d.gif

你凭什么不努力,又什么都想要。

bbe70f16d2c072e33ba109970ec1b45a.png 47633e9ae90c9b7cbe9c491d89bc991b.png 18f3d44c9cac371c64de8ccfd73b5cfe.png

数据结构是本学期开设的关于C语言升级进化课程。想必有上过这门课的同学都有体会到这门课的难度,如果你也是在这门课上受挫,那么接下来可以和我一起好好捡起C语言的知识,迎难而上,共克时艰。

首先,先弄清楚数据结构的肉体,基本语言吧。数据结构更像是一个框架,骨架,那么要形成这样一个骨架,首先是有一个组织思路,什么地方应该放什么骨头,一个骨头里应该是由什么骨质细胞组成。这样其实很多人数据结构弄不清,首先对语言就不是很有感觉,其次思路不清晰,所有会感觉很难。

所以,我先从理清语言入手。数据结构的语言分为C语言和C++语言。这两种语言还是有一些差别的。

先讲讲我们常会遇到的一些差别:

①作用域

C语言中作用域只有两个:局部,全局。C++中则是有:局部作用域类作用域名字空间作用域三种。

所谓名字空间就是namespace,我们定义一个名字空间就是定义一个新作用域。访问时需要以如下方式访问(以std为例)

std::cin<< "123" <<:endl>

例如我们有一个名字空间叫Myname,其中有一个变量叫做data。如果我们希望在其他地方使用data的话,需要在文件头声明:using Myname::data;这样一来data就使用的是Myname中的值了。可是这样每个符号我们都得声明岂不是累死?

我们只要using namespace Myname;就可以将其中所有符号导入了。

这也就是我们经常看到的using namespace std;

c06c39d74ca055bf1ae023f3173b8a9a.png

我们来看一个最简单的代码,也就是C语言时候的第一个代码

输出:hello world!

C++的输出也有自己的语言风格~如下图:

c34762875524fcca11c4b8d82466f387.png

看看关键字(keyword)是整个语言范围内预先保留的标识符。每个C++关键字都有特殊的含义。不能声明与关键字同名的标识符。

265f0114905ce511d6994661fc27efdb.png

malloc()和free()是C语言中动态申请内存和释放内存的标准库中的函数。而new和delete是C++运算符、关键字。new和delete底层其实还是调用了malloc和free。

  • malloc和free是函数,new和delete是运算符

  • malloc在分配内存前需要大小,new不需要。

例如:int *p1 = (int *)malloc(sizeof(int));

           int *p2 = new int;     //int *p3 = new int(10);

  • malloc需要指定大小,还需要类型转换。new时不需要指定大小因为它可以从给出的类型判断,并且还可以同时赋初始值。

  • malloc不安全,需要手动类型转换,new不需要类型转换。

  • free只释放空间,delete先调用析构函数再释放空间(如果需要)

这些区别稍稍有些抽象了,但是区别还是有挺多的,今后学习中慢慢消化。

这些关键字在以后学习中慢慢熟悉,有一些也可能一直不会用到。

更多了解c++的资料可以搜索百度百科——C++

学习c++语言的资源推荐程序媛

希望你我一起努力进步

今天学习就到这里啦,继续加油~

今日练习

fcc94e10f6bca7c705f769638627d2f8.png

a0f6493fde3c6f6865d56b3c5d652b01.png

240e2c9a37a48bb265f3426c08a5c2b3.gif 这是浩子

d66b90ff0e9715ff295e0aaa1d4c828b.png

一位热爱当下生活,但又不想满足于现状,又懒又笨又矛盾,想要创造一个属于自己的快乐星球的男孩子。

学校:杭州师范大学

专业:地理信息科学

年级:2019级

hobby:旅游,摄影,狗狗,健身,音乐,美食,喜欢杰伦和Taylor,是木瓜牛奶和芝士年糕的忠实粉丝。

Motto:不喜欢被别人定义,就需要一直去尝试突破。

往期推荐

1. 第九周︱你是不是在偷偷看笑话

2. 第八周︱我们身在井隅,却心向璀璨

3. 第七周︱不要说话

77d3bc454738aa70995b0257e7ff3c91.pngEND
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值