目录
?这篇博客,我将回顾2023年编程之旅的起点,同时展望2024年的新征程。
高考结束后,我因为未能达到期望已久的目标分数,经历了一段漫长而深沉的颓废时期。在那段时间里,心中充满了失落与迷茫。最终,因我兴趣所使及互联网上某考研名师的强烈推荐,我选择了计算机专业作为我重辟征途的开始。
高考的挫折,我已不愿再忆。而今,心中唯有一愿:
愿我与那些同行在编程这道路上的人们,都能怀着一颗无悔的心,坚定不移地走下去,直至成功抵达彼岸。
? ?
实际上,我的编程之旅是从Python入门的。在暑假时,我断断续续地投入了一个月的时间来学习Python。正如网络上普遍的评价,Python的入门相较于C语言更为平易近人。它摒弃了C语言中那些繁琐的规定,确实是简洁语言的代表。这种简洁不仅降低了学习的门槛,更激发了我对编程的兴趣。虽然我粗略的学到了Python中的类与对象的那个部分,但现如今,我甚至忘记了基本语法。但是开学的时候,我听说学校大二才开始学python,学校的教学计划是先从C语言开始,于是乎,我暂停了python的学习,开始了C语言的学习。
C语言的学习,是从同学那推荐比特的视频开始的。刚开始学习C语言时,因为Python语法的给我的思维惯性,让我第一次感受到了什么是真正的难度。C语言的代码确实以其严谨性而著称,每一个细节都必须精确到位,相较于Python的简洁与直观,C语言的学习曲线更为陡峭。(还好鹏哥讲的细,不然我可能直接奔向Python的怀抱了!!!)
在正式加入比特的学习后,我便写知道写CSDN的重要性。
在学习了C语言的三种结构,顺序结构,选择结构,循环结构后,于是我写下了我的第一篇正式博客 :C语言对猜数游戏的优化(防止输入错误)-CSDN博客
? ?
与此篇博客同时发出的是:C语言中限定输入scanf的为整型(整数),浮点型_如何设置c语言中的输入全是浮点数-CSDN博客
这篇博客是第一篇博客与我学习写扫雷代码中遇到scanf输入错误时,错误的修正?。
? ?
C语言实现扫雷(递归实现一扫一片,内含详解,附源码)-CSDN博客
在学习过函数和数组的相关知识后,我根据鹏哥的提供的思路,写出了这一个经典小游戏(虽然非常简陋就是了)“扫雷”,通过自己的研究,让画面变得更加充实,还添加了计数与选择雷数功能,于是我就把扫雷写成博客,分享自己的思路(虽然还是有小bug就是了(>﹏<)? )
写扫雷的时候,是我博客字数(包括代码)最多的一次
在写了这篇之后,我便开始控制博客字数,因为写得内容过多,确实可以分好几篇了。
(而且还没什么人看o(╥﹏╥)o,或许是我的扫雷不够好吧X﹏X? )
? ?
(之后的博客大多其中大部分内容是围绕C语言的学习展开,同时也分享了一些刷题的日志)
这里不得不感叹指针,这玩意老难了,我大概学了两个星期,还刷了一个星期的题,我逐渐领悟了指针的一些基本用法和技巧。然而,我不得不承认,尽管我现在对指针有了一定的理解和应用能力,但面对指针的深奥之处和高级应用,我仍然保持着一颗敬畏之心。毕竟,谁看到这样的代码都会惊叹吧?╥﹏╥:
(*(void (*)())0)();
void(*)(int)??signal(?int? , void(*)(int))
(!讲解在指针详解二,下面第三篇指针博客!)
初识指针(指针和指针变量、如何理解地址、指针类型的意义、void*指针、野指针、空指针)(笔记)-CSDN博客
指针详解(const、指针运算、数组名的理解、传址调用和传值调用、一维数组的本质?)(一)-CSDN博客
指针详解(二级指针、指针数组和数组指针、字符指针、二维数组传参、函数指针变量)(二)-CSDN博客
指针详解(冒泡排序、qsort、回调函数、转移表)(三)_指针访问的冒泡排序-CSDN博客
在学习扫雷之后,我便开始了解了一些内存知识和操作符用法:?
?而后便是字符函数与字符串函数的学习,在学习C语言的过程中,字符函数与字符串函数的部分无疑是一大挑战。这部分的函数之多、用法之细致、记忆之困难,导致在实际应用时经常出现错误。
深入理解字符串函数和字符函数(islower和isupper、tolower和toupper、strlen、strcpy、strcat、strcmp)(一)-CSDN博客
深入理解字符串函数(strstr、strtok、strerror)(二)-CSDN博客
之后则是内存函数、结构体、数据存储和大小端的学习了,这些概念相对抽象,需要细致的理解和扎实的实践。内存函数直接关乎程序的效率和稳定性;
内存函数?(memcpy、memmove、memset、memcmp)_memcpy mmap内存 framebuffer-CSDN博客
结构体则是组织复杂数据的得力助手,它们允许我们将不同类型的数据组合在一起,形成一个自定义的数据结构,从而方便地管理和操作这些数据。;
而大小端问题则是跨平台编程时必须面对的挑战;理解整数和浮点数的存储方式对于编写高效、可靠的代码至关重要,因为它们直接影响着程序处理数值数据的方式和性能。
自定义类型:联合体和枚举类型(联合体与结构体的区别)-CSDN博客
?文件操作是C语言的基本技能,通过标准库函数实现打开、读写和关闭文件。需注意文件路径、权限和格式,确保数据安全。掌握文件操作对编写程序至关重要。(虽然我现在刷题的时候也很少用上(>﹏<),但是还是坚持学完了)
文件操作(一、fgets和fputs、fscanf和fprintf、fread 和 fwrite、fopen和fclose、fgetc和fputc)-CSDN博客
文件操作(二、scanf/fscanf/sscanf?与printf/fprintf/sprintf?、fseek与ftell与rewind、feof)-CSDN博客
对于数据结构的学习,我更是怀着一颗敬畏、钦佩之心。每当我深入研究那些前人留下的代码时,都会被它们所展现出的出神入化的技巧和深邃的思维所震撼。常常会感概到:这是人能想出来的???这一部分的学习我暂时只能接触最基础的部分,因为C语言缺少库函数,实现起来相较于C++等高级语言更困难
链表基础知识(一、单链表、头插、尾插、头删、尾删、查找、删除、插入)-CSDN博客
链表基础知识(二、双向链表头插、尾插、头删、尾删、查找、删除、插入)-CSDN博客
顺序表的实现(头插、尾插、头删、尾删、查找、删除、插入)-CSDN博客
环形链表、环形链表 II、有效的括号【LeetCode刷题日志】-CSDN博客
反转链表、链表的中间结点、合并两个有序链表【LeetCode刷题日志】-CSDN博客
二叉树详解(深度优先遍历、前序,中序,后序、广度优先遍历、二叉树所有节点的个数、叶节点的个数)-CSDN博客
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】-CSDN博客
回顾C语言学习之旅,我收获满满。从对C语言的懵懂无知,到如今至少略知一二,感谢这段旅程,它教会了我探索与坚持,每一步都充满挑战,但也带来成长的喜悦,也让我对未来充满期待。
尽管网络上充斥着“计算机领域已难以取得成就”的声音,我依旧选择坚定地在这条道路上迈进,这不仅仅是无奈之举,更是对我而言的最后的机会。毕竟,我的家人们并不支持我走这条道路(在他们看来,计算机对学历的要求很高),但因种种因素下,仍怀有“纵使困顿难行,亦当砥砺奋进”的决心。因为我对计算机所掀起的革命性浪潮充满了无尽的钦佩与向往。我渴望能够融入这场革命,尽自己那绵薄之力,为计算机领域的发展贡献一份力量。
回首2023年,我感到无比庆幸和自豪。有幸有大家的支持与陪伴,我才能无畏前行,度过每一个难关。感谢你们,让我的这一年意义非凡。
大家,新年快乐!!!