
c语言
c语言
执念、坚持
学习过程中,求职入行前遇到的问题;入职后,需求的解决方案探讨,都可以与我私信
展开
-
基于C的工厂模式
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式(英语 design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。原创 2023-05-08 16:54:06 · 157 阅读 · 0 评论 -
链表嵌套链表实现学生管理系统
【代码】链表嵌套链表实现学生管理系统。原创 2023-03-15 00:43:59 · 327 阅读 · 0 评论 -
c语言链表之查找链表节点数量和查找节点是否存在
【代码】c语言链表之查找链表节点数量和查找节点是否存在。原创 2023-03-07 23:31:20 · 382 阅读 · 0 评论 -
c语言链表之初始链表
链表是数据存放的一种思想;也是数据的结合,这跟数组有点像,但是数组有以下特点;元素地址是连续的。其缺点也很明显如果需要增加一个元素和删除一个元素呢?此时就特别麻烦,非常不灵活这时候就能体现链表的优势了。int data;for(i = 0;i++){// 可以随意的加入return 0;原创 2023-03-06 22:15:21 · 107 阅读 · 0 评论 -
C语言字符串之动态开辟内存
realloc:可以实现内存扩容,函数原型 void *realloc(void *ptr, size_t size),C 库函数 void *realloc(void *ptr, size_t size) 尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。函数原型 void *malloc(size_t size),C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。如果动态开辟的内存不够 用怎么办?原创 2023-03-04 17:04:46 · 451 阅读 · 0 评论 -
C语言字符串之strcat
这个方法的原型:char *strcat(char *dest, const char *src);我们先看strcat的用法,这个API主要用于拼接字符串的。接下来手写一个strcat。原创 2023-03-04 21:48:56 · 93 阅读 · 0 评论 -
C语言字符串之sizeof和strlen的区别
可以看出,strlen亦然是只计算有效字符的大小,而sizeof则会得到计算机用多少个字节来表示一个地址,不管你是 char *, 还是 int *;这里的计算机都用8个字节表示一个地址。strlen 会计算有效字符,sizeof 会把结束标志也计算上,如果字符串数组的大小在声明的时候就确定了;则会得到你规定的那个值。另外一种情况,计算指针变量的时候。原创 2023-03-04 15:59:14 · 83 阅读 · 0 评论 -
C语言结构体之结构体指针
但是如果你在循环里面指针发生了偏移,在下一个循环之前需要重新让指针指向开始的位置。以前需要用 . 运算符访问的,可以改成结构体指针(->)访问。变量的访问方式有两种 1. 变量名 2. 地址。在知道结构体指针之前需要知道以下内容;指针变量 == 存放地址的变量。原创 2023-03-05 18:31:44 · 163 阅读 · 0 评论 -
C语言字符串之strcpy
strcpy, 看名字可以知道是复制字符串用的,接下来我们手写一个。好像原型还可以控制复制多少个字符串哦,我们也实现一下。原创 2023-03-04 22:50:29 · 94 阅读 · 0 评论 -
C语言结构体之初识结构体
struct Student // 一般结构体要求大写开头int num;char sex;int age;// 这里的分号一定不能忘上面算是一个模板,一般不需要赋具体的值。在声明的同时,定义变量,尽量少用。int num;char sex;int age;应该如何定义变量呢?int main()// 可以把 struct Student 看成是 intstrcpy(stu1.addr, "广州");原创 2023-03-05 10:35:27 · 120 阅读 · 0 评论 -
c语言指针之指针函数
一个函数可以返回一个整型值、字符型值、实型值(小数)等,也可以返回一个指针型的数据。即地址。指针函数的概念和之前普通函数概念类似,只是返回值的类型是指针类型而已。原创 2023-03-04 11:44:31 · 84 阅读 · 0 评论 -
C语言指针之指针数组
一个数组,若其元素均为指针类型数据,称为指针数组。也就是说指针数组中的每一个元素都存放一个地址,相当于指针变量int *p[4]由于 [ ]的优先级比 * 优先级高,因此 p 先与 [4] 结合,形成p[4], 这显然是一个数组,表示 p 数组中有4个元素,然后再与p前面的*结合,同时*也表示数组是指针类型的,数组每个元素都可以指向一个指针整型变量。int a = 10;int b = 20;int c = 30;int d = 40;原创 2023-03-04 10:56:10 · 107 阅读 · 0 评论 -
c语言之字符串
如何定义字符串, 一般有两种如何打印字符串中的字符?数组名是首地址。原创 2023-03-04 15:36:38 · 59 阅读 · 0 评论 -
c语言指针之函数指针
函数名就是地址,地址也称为指针。原创 2023-03-03 23:47:19 · 105 阅读 · 0 评论 -
c语言链表之链表后面插入节点
加入此时我们有 1,2,3,4,5 五个节点,需要在2节点和3节点之间插入一个节点,新节点是 100。先让 100->next = 2->next;然后 2->next = 100;原创 2023-03-07 23:41:40 · 904 阅读 · 0 评论 -
C语言指针之初步认识
指针 == 地址在此之前我们先认识一下 int a =10; 这个包含几部分内容?1. 类型:int2. 变量名:a3. 内存地址(需要通过打印才能看到)4. 值:10其中值可以通过以下方式访问1. 变量名访问 a。2. 通过取地址运算符 & ,然后再用 * 将地址内的值读出。原创 2023-03-08 11:53:56 · 106 阅读 · 0 评论 -
c语言链表之动态创建尾插法
【代码】c语言链表之动态创建尾插法。原创 2023-03-09 11:05:38 · 135 阅读 · 0 评论 -
c语言链表之动态创建头插法
【代码】c语言链表之动态创建头插法。原创 2023-03-08 23:22:17 · 121 阅读 · 0 评论 -
c语言指针之数组指针
移动 *p, 也就是*arr, arr是二维数组,操作的是二维数组的首地址,也就是{11,22,33,44} ,*arr的时候,操作的是{11,22,33,44}的首地址,也就是11的首地址。为什么会有警告呢,因为 p++ 是里面一个元素一个元素的字节偏移,arr++是一个数组一个数组的字节偏移;这样是能打印出所有元素的,但是里面的 p = &arr[0][0] 能不能改成 p = arr 呢?换算就是,p++ 是四个字节,四个字节的偏移,arr++是16个字节,16个字节的偏移。能打印出所有元素呢?原创 2023-03-08 16:37:08 · 110 阅读 · 0 评论 -
c语言链表之删除指定节点
有1,2,3,4,5节点;1->2->3->4->5, 支持指点删除任何一个节点。原创 2023-03-08 22:52:26 · 2028 阅读 · 0 评论 -
c语言链表之从指定节点前面插入节点
需要在5的前面插入105;需要在3的前面插入103;需要在1的前面插入100;现在已有节点 1,2,3,4,5;原创 2023-03-08 22:02:39 · 513 阅读 · 0 评论 -
C语言指针之指针和二维数组
指针和二维数组,也就是要找到二维数组的地址;现在先回顾一下数组的地址;数组名 == 数组的首地址 == 数组首个元素的地址。目前可以知道a是二维数组名。a数组又包含了3行,即:a[0], a[1], a[2]。而每一行元素又是一个一维数组。也可以简化为所以现在可以得出行地址是 a,列地址是:a[0], a[1], a[2]根据数组名 == 数组的首地址 == 数组首个元素的地址这个可以得出由于a[0] = {1,2,3,4};那么a[0]的首个元素则表示为:a[0][0]原创 2023-03-08 15:58:21 · 90 阅读 · 0 评论 -
C语言指针之通过指针引用数组
在c语言中,数组名(不包括形参数组名,形参数组并不占据实际的内存单元)代表数组中首元素(即序列号为0的元素)的地址。系统在使用数组下标对数组成员变量进行访问时,开销比较大,指针的访问效率是远远大于数组名访问效率的。指针引用数组,也就是定义一个指针变量指向一个数组元素。同时它也会指向数组的首地址。下标法更容易理解,在可读性方面,也更加具有优势,具体怎么选择,也没有一定的说法。但是只有在指针正确访问时,才会比下标法更有效率。而在c语言中指向数组的首地址有两种方式。指向数组首个元素的地址。原创 2023-03-08 14:22:56 · 169 阅读 · 0 评论