C语言学习系列
文章平均质量分 91
本专栏,主要针对C的学习,由浅入深
南桥几晴秋
阿里云乘风破浪计划专家博主 笔记分享 脚踏实地
展开
-
C语言学习系列-->一篇带你看懂内存函数
上篇文章学习了C语言字符串函数,只是对字符串进行操作本节,小编整理了一下C语言中的内存函数,对内存进行操作,只针对会内存块,不针对数据memcpy是对内存拷贝拷贝的可能是字符串,也可能是整型数组所以使用 void*将source拷贝到destination,指定字节数为numcodeint main()int i = 0;for (i = 0;i < 10;arr2是dest,arr1是scr,20是怒num,即字节。原创 2023-09-13 10:37:31 · 578 阅读 · 36 评论 -
C语言学习系列->联合体and枚举
在上一篇文章中,小编将结构体的学习笔记整理出来了。现在,小编将枚举和联合体笔记分享给大家。枚举和联合体与结构体一样,都是自定义类型,在学习完枚举和联合体后,C语言中自定义类型也就告一段落啦。联合体也是自定义类型,关键字为union,特点是所有成员共⽤同⼀块内存空间,因此,联合体也叫做共用体。声明union Uchar c;char i;int i;枚举,顾名思义,列举。原创 2023-10-05 18:09:44 · 578 阅读 · 44 评论 -
C语言学习系列—>一篇带你了解结构体
结构体是C语言中自定义类型之一,当内置类型不能满足的时候,我们就可以使用自定义类型,在后续数据结构的学习过程中会遇到很多关于结构体的内容,所以,小编将在学习结构体时的笔记分享一番。结构体是一个集合,里面的成员变量可以是不同类型的。原创 2023-09-23 18:41:40 · 684 阅读 · 23 评论 -
数据在内存中的存储
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为⼤端字节序存储和⼩端字节序存储⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。原创 2023-09-17 15:07:55 · 433 阅读 · 9 评论 -
sizeof和strlen的对比
很多小白在学习中,经常将sizeof和strlen弄混了。本篇文章,小编讲解一下sizeof和strlen的区别。🤷♂️。原创 2023-08-24 13:45:13 · 229 阅读 · 28 评论 -
C语言学习系列-->字符函数和字符串函数
• 字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前⾯出现的字符个数(不包含 ‘\0’ )。• 参数指向的字符串必须要以 ‘\0’ 结束。• 注意函数的返回值为size_t,是⽆符号的( 易错 )• 学会strlen函数的模拟实现• 源字符串必须以 ‘\0’ 结束。• 会将源字符串中的 ‘\0’ 拷⻉到⽬标空间。• ⽬标空间必须⾜够⼤,以确保能存放源字符串。• ⽬标空间必须可变。• 学会模拟实现。• 源字符串必须以 ‘\0’ 结束。原创 2023-09-11 19:59:00 · 2093 阅读 · 24 评论 -
C语言学习系列-->【关于qsort函数的详解以及它的模拟实现】
对数组的元素进行排序对数组中由 指向的元素进行排序,每个元素字节长,使用该函数确定顺序。此函数使用的排序算法通过调用指定的函数来比较元素对,并将指向它们的指针作为参数。qsort函数的参数void* basesize_t numvoid qsort(void* base, //待排序数据的起始位置size_t num, //待排序数据的元素个数size_t size,//待排序数据的每个元素的大小//函数指针 - 指针指向的函数是用来比较待排序数据中两个元素大小关系的。原创 2023-08-23 17:23:38 · 699 阅读 · 25 评论 -
C语言学习系列-->看淡指针(3)
前面一篇文章我们讨论过指针数组,本质上是一个数组,一个存放指针的数组。本节,我们要讨论的数组指针,后缀“指针”。数组指针,指向的是数组的指针,存放的是数组的指针。类比之前学的:• 整形指针变量: int * pint;存放的是整形变量的地址,能够指向整形数据的指针。• 浮点型指针变量: float * pf;存放浮点型变量的地址,能够指向浮点型数据的指针。解释:p先和*结合,说明p是⼀个指针变量变量,然后指着指向的是⼀个⼤⼩为10个整型的数组。所以p是⼀个指针,指向⼀个数组,叫 数组指针。原创 2023-08-22 16:41:15 · 995 阅读 · 8 评论 -
C语言学习系列-->看淡指针(2)
不把指针学的扎实,可不敢说自己C语言基础学的好。原创 2023-08-12 16:30:34 · 441 阅读 · 30 评论 -
C语言学习系列-->看淡指针(1)
在大学的宿舍里,每个宿舍都有属于自己的编号(比如:222),每一栋楼也有属于自己名字或者编号(比如:慧苑,B05)。通过这些编号,我们在点外卖的时候,直接将宿舍楼和宿舍号写在地址上,外卖小哥就会将你所点的食物送到对应的宿舍。如果,没有这些编号,你该怎么直接描述地址呢?让小哥一个一个找吗?效率低。在计算机中,也和上述案例一样。原创 2023-08-11 17:36:26 · 283 阅读 · 23 评论 -
你知道函数栈帧的创建和销毁吗?
在前面的学习中,可能会出现许多疑惑:1、局部变量是怎么创建的?2、函数是怎么传参的?3、函数调用是怎么做到的?4、函数调用结束后是怎么返回的?希望读者在看完小编的文章,对一系列问题会有所掌握函数栈帧是在内存中的栈区为被调函数开辟的一块空间,里面用来存放该函数中定义的变量等东西,当函数运行完毕栈帧将被销毁。可以想象成洗盘子,最先吃完的人将盘子放在最下面,后面吃完的人依次将盘子叠放在前一个的上面。于是,最后吃完的人的盘子就在最上面,也就是最先洗。Push(入栈):为栈增加一个元素。原创 2023-08-07 09:06:25 · 450 阅读 · 48 评论 -
Minesweeper game(Plain version)--C
学完数组和函数,我们可以简单写一个扫雷游戏。此扫雷游戏是一个简化版的,大家可以尝试写一下。• 使⽤控制台实现经典的扫雷游戏• 游戏可以通过菜单实现继续玩或者退出游戏• 扫雷的棋盘是9*9的格⼦• 默认随机布置10个雷• 可以排查雷◦ 如果位置不是雷,就显⽰周围有⼏个雷◦ 如果位置是雷,就炸死游戏结束◦ 把除10个雷之外的所有雷都找出来,排雷成功,游戏结束游戏界面。原创 2023-07-31 19:29:00 · 368 阅读 · 51 评论 -
C语言学习系列-->【函数的递归】
小编怀着激动的心情编写本篇小博客,因为我要介绍的是递归——一种优雅的问题解决方法。递归将人分成三个截然不同的阵营:恨它的、爱它的以及恨了几年后又爱上它的。希望各位读者在阅读小编的文章后,可以深刻理解递归思想。递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。main();//main函数中⼜调⽤了main函数 return 0;上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问题,代码最终也会陷⼊死递归,导致栈溢出。原创 2023-08-04 22:34:08 · 213 阅读 · 20 评论 -
关于vs中scanf()函数报错问题的解决
在vs中,在使用scanf()函数时,编译器会报错,这是vs为数不多的一个小问题,相对于它的优点,这点小错误,是可以忽略的,毕竟我们也有多种解决方法,下面来带大家看看。如有谬误,请指正!针对于vs中scanf()报错有许多解决方法,小编仅展示了三种方法,其中法二是推荐使用的方法。大家可以尝试一下。原创 2023-07-23 11:36:45 · 594 阅读 · 1 评论 -
C语言学习系列-->第一弹【初识C语言】
从今天开始,小编为大家整理C语言学习的笔记,供大家参考。如有谬误,欢迎指正。顾名思义,它是一种语言,是一种人与计算机交流的语言。C语言只是计算机语言的一种,还有C++、Python、Java等。C语言学好,后期学习C++/Python等语言上手就会简单许多。C语⾔中有⼀批保留的名字的符号,⽐如:,这些符号被称为保留字或者关键字。• 关键字都有特殊的意义,是保留给C语⾔使⽤的• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的• 关键字也是不能⾃⼰创建的。C语⾔的32。原创 2023-07-20 21:04:05 · 511 阅读 · 0 评论 -
C语言学习系列-->第二弹【数据类型和变量】
本章主要介绍数据类型、变量、操作符、强制类型转换等,内容还是比较多的,还是得耐心看,耐心学,学完自己去敲代码吧。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。本篇内容主要涉及了C语言的基础语法,不需要死记硬背,只需要经常敲代码,熟能生巧。原创 2023-07-21 13:16:35 · 193 阅读 · 5 评论 -
C语言学习系列-->第三弹【浅谈输入和输出函数】
本篇文章,小编浅谈一下C语言中输入和输出函数,由于本人能力有限,部分语言组织可能有问题,(不信)如有谬误,请指正。本节主要是对输入和输出函数进行简单的讲解,要想有更深入的了解,可以去搜索。当然,在目前学习中,掌握这些其实足够了。原创 2023-07-23 10:58:19 · 187 阅读 · 0 评论 -
C语言学习系列-->第四弹【分支和循环】
从本节开始,将进入C语言循环分支结构,在学习过程中,需要多敲代码,多刷题。选择结构程序设计循环结构程序设计从本节开始,知识难度增加啦。开始更加考验大家逻辑思维能力了,想要提高思维,就需要多刷题,想要熟练掌握语法,依然需要多刷题。选择结构程序设计循环结构程序设计。原创 2023-07-24 15:27:51 · 933 阅读 · 3 评论 -
C语言学习系列-->【关于随机数的实现】
本篇文章主要介绍随机数的生成,涉及伪随机数和随机数,为后面《猜数字游戏》的实现做铺垫本篇文章主要介绍了随机数,部分细节类容我们在后面会继续细谈。原创 2023-07-27 22:10:02 · 164 阅读 · 3 评论 -
C语言学习系列-->【数组】
本篇文章细谈一下数组,涉及一维数组和二维数组,更高的数组不常见,用不上数组是⼀组相同类型元素的集合:1、数组中存放的是1个或者多个数据,但是数组元素个数不能为0。2、数组中存放的多个数据,类型是相同的。数组学习完之后,和前面的循环结合,难度直接加大,需要多刷题,巩固知识和逻辑思维。原创 2023-07-28 22:55:06 · 153 阅读 · 1 评论 -
C语言学习系列-->【函数】详细
本篇文章,介绍函数,函数的使用,会使你的代码实现更多功能并且让人看得清楚。讲一段经常使用的代码给封装起来,减少代码重复使用个⼤的计算任务可以分解成若⼲个较⼩的函数(对应较⼩的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以复⽤的,提升了开发软件的效率。只知道库函数是远远不够的,有些功能需要我们自己创建一个函数来去实现,标准库函数里面没有。⼀般我们在使⽤函数的时候,直接将函数写出来就使⽤了。比如写一个判断一年是否是闰年的函数://判断⼀年是不是闰年int y = 0。原创 2023-07-31 11:49:03 · 148 阅读 · 2 评论