- 博客(22)
- 收藏
- 关注
原创 C语言模拟实现strncpy,strncat,strncmp函数
这里模拟实现的思路就是,先找到目的字符串末尾的’\0’,再将源字符串的前num个字符复制过去。值得注意的的是,我们在追加字符串的时候要保证目的字符串的空间足够大。这里要注意的一点就是,strncpy并不会将’\0’复制过去。
2024-01-06 00:24:06 503
原创 数组笔试题目和解析
6.a 二维数组的数组名,表示首元素的地址,二维数组的首元素是第一行的一维数组,所以a是第一行的地址,+ 1跳过一行,指向第二行,是地址就是4或8个字节。2.a没有直接放在sizeof里面,也没有放在&后面,所以数组名表示的是首元素的地址,所以a+0表示的也是数组首元素的地址,是地址就是4个或8个字节。4.a[0]是第一行的数组名,表示第一行首元素的地址,+ 1跳过一个元素,指向第一行的第二个元素,是地址大小为4个或8个字节。11.sizeof并不会计算括号内的内容,所以a[3]和a[0],a[1]……
2024-01-02 23:44:06 917
原创 数据结构——顺序表
概念:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。分类:1.静态顺序表:使用定长数组存储元素2.动态顺序表:使用动态开辟的内存存储我们这里主要讲解动态的顺序表增删查改等操作。
2023-11-04 22:33:21 84 1
原创 C语言——位段,联合,枚举
enum Day {enum Sex {联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间。(所以联合也叫共用体)union Unchar i;int n;
2023-10-23 21:36:11 48
原创 C语言——结构体大小的计算(内存对齐)
利用 #pragma pack(x)指令可以修改默认对齐数的大小。x为设置的默认对齐数的大小。利用 #pragma pack()指令取消设置的默认对齐数,还原为默认。数据结构(尤其是栈)应尽可能的在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要做两次内存访问;而对齐的内存仅需要做一次内存访问。不是所有的硬件平台都能访问任意地址上的任意数据的,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。
2023-10-23 16:45:41 124 1
原创 C语言模拟实现memcpy和memmove
为了避免在拷贝时将原有的数据覆盖,因此,内存的拷贝可以使用memmove来拷贝。内存的拷贝可以使用memcpy来拷贝。
2023-10-08 20:26:36 111 2
原创 C语言回调函数案例(二)——利用冒泡排序算法实现qsort
如果我们需要将其按照从小到大的顺序进行排序,利用冒泡排序的思想就是:将第一个数字和第二个数字进行比较,如果第一个元素大于第二个,那么将这两个数字进行交换,然后再将较大的那个元素与后面的每一个元素进行比较,如此进行下去,直到该元素后面没有比它更大的元素。,期间的每两个元素进行比较我们称之为。
2023-09-24 23:36:25 116 10
原创 C语言模拟实现strcat,strcmp,strstr函数
2.把arr2的内容追加到arr1后边('\0’也要追加)1.找到arr1末尾的’\0’
2023-09-23 15:02:12 447 9
原创 C语言题目——杨氏矩阵
,又名杨表,是一种常用于表示论和舒伯特演算中的组合对象。杨表是一种特殊的矩阵。它便于对称群和一般线性群的群表示和性质研究。杨表由剑桥大学数学家阿尔弗雷德·杨(AlfredYoung)于 1900 年首次提出,于 1903 年被德国数学家弗罗贝尼乌斯()应用于对称群的研究。
2023-09-13 22:10:32 126 2
原创 C语言回调函数案例——qsort
根据不同的待比较元素的类型,我们需要写出不同的compar函数,这里需要注意的是,compar函数的两个参数是void*类型的,并不能够直接解引用,而是需要先进行强制类型转换。其实,如果使用方法得当的话,qsort函数可以用来排序任意类型的数据,不过我们需要把compar函数抽离出来,根据不同的待比较的数据类型,写出不同的比较两个元素的函数。第二个参数是num,里面存的是base指向的数组的元素个数,即待排序数组的元素个数。排序前,arr数组里的元素顺序为。排序后,arr数组里的元素顺序为。
2023-09-10 20:15:48 58 3
原创 C语言题目——位1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)
2023-09-07 00:01:23 73 1
原创 C语言题目——反转字符串
可以看出,向这个反转函数里传入了一个字符串和它的长度,题目要求不能够给出另外的数组分配额外的空间,我这里想到的是用一个字符来充当中间人,进行字符数组里每个字符的交换。整体的解决逻辑就是,从前向后遍历数组,将第一个字符与最后一个进行交换,将第二个字符与倒数第二个进行交换,以此类推,遍历到中间一个元素为止。
2023-09-04 16:09:34 141 1
原创 C语言-函数递归
定义一个函数Fib(n),可以表示为Fib(n) = Fib(n-1) + Fib(n-2),而当n为1或2的时候,对应的斐波那契数都为1。注意在递推到最后的时候,要有一个条件可以把最后一个值算出来,然后一步一步回归,在本题中,最后一个值就是k为0时,返回的值为1,如果没有else的条件,递归无法结束。函数递归是函数自己调用自己的一种现象,它可以将一个复杂的问题拆分为许多小的步骤去解决,这些小的步骤又具有类似的计算方法,因此可以采用递归的方法来解决。注意函数的返回值,函数在返回的时候实现递归。
2023-07-25 23:54:31 84
原创 初识 编程
本人来自一所双非本科院校,热衷学习以提升自身能力,如今初识编程,只是一名小白,希望在今后不断地交流学习中提升自身编程能力,掌握更多专业知识。我认为,编程学习最重要的是独立思考的能力和不断探索的精神,同时需要日复一日的坚持,希望自己可以按照所认为去努力学习。因本人另有学业安排,所以并不能全身心投入到编程学习中去,但每周的课余时间我愿意尽数交给编程学习。希望可以和大家共同学习,一起进步,实现自己的理想!对于自己的目标,我希望可以每天进步一点点,争取做到有问题就去解决,不拖沓,不逃避。
2023-07-10 14:22:58 57 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人