C语言
文章平均质量分 66
有关C语言的知识
过✪
岁月漫长,值得等待
展开
-
C语言内存操作函数
函数处理的源内存块和目标内存块是可以重叠的。有任何的重叠,复制的结果都是未定义的。如果源空间和目标空间出现重叠,就得使用。memove()函数的模拟实现。memcpy()函数模拟实现。memcmp()函数应用演示。memset()函数应用演示。(一个无符号字符)到参数。的时候并不会停下来。原创 2022-09-13 22:09:43 · 96 阅读 · 6 评论 -
关于动态开辟内存的经典笔试题
在free(str)之后,对动态开辟的内存已经进行了释放,但是str仍不为NULL,指向了不属它的内存空间,该题的考点就是free函数调用之后,指针不为NULL!,在执行完GetMemory函数之后,p所指的内存空间也会被释放掉,导致str是一个野指针,不知道指向那块内存空间。本题中代码可以在屏幕上打印出hello,但是仍然存在。Test函数也是会运行失败的,这个函数仍然存在。的问题,没有对动态开辟的内存进行释放!原创 2022-09-24 17:31:10 · 133 阅读 · 6 评论 -
C语言——枚举
枚举:顾名思义就是把可能取值进行一一列举。enum Color{BLUE,//注意这里用,进行分隔,而不是;此时,enum Color就是枚举类型,其中{}之内的为枚举常量。注意:枚举常量都是有值的,默认从0开始,一次递增1,也可以在自定义的时候赋上初值。enum Color{BLUE,//注意这里用,进行分隔,而不是;}原创 2022-09-21 22:33:27 · 4739 阅读 · 1 评论 -
C语言——动态内存管理
目录一、为什么存在动态内存管理❓❓二、动态内存函数的介绍 💗💗1、free函数🌟🌟2、malloc函数⭐⭐3、calloc函数✨✨4、realloc函数💫💫三、常见动态内存错误💥💥1、对NULL指针的解引用操作🍃🍃2、对动态开辟内存的越界访问🌿🌿 3、对非动态开辟内存使用free函数🍀🍀4、使用free函数释放一块动态开辟内存的一部分🌵🌵5、对同一块动态内存进行多次释放🌳🌳 6、对动态开辟的内存忘记释放造成内存泄漏🌲🌲 四、C/C++程序的内存开辟💓💓五、柔性数组原创 2022-09-29 16:59:29 · 490 阅读 · 5 评论 -
电子狗的心事
计算机程序世界中有一位孤独的电子狗,这个电子狗每次只能执行一种操作指令:朝着现在的方向前进X米,然后左转。电子狗认为,它不断的执行这样的指令,最终有一条指令,能使它回到曾经走过的地方。然而,实际上,当它已经执行完给定它的n条指令时,并不一定会回到它曾经走过的地方。并且,电子汪很想知道结果。如果给了它n条指令,在第几条指令时,它能第一次回到自己已经走过的地方。如果指令执行完,都没有回到它曾经走过的地方,电子汪将会十分伤心,这个时候请输出“regret”。第一行为T,表示输入数据组数。原创 2022-10-17 23:18:25 · 127 阅读 · 8 评论 -
单身狗问题
面对这样的问题, 可能首先想到的是对数组的元素进行遍历,记录每个元素出现的次数,然后找到只出现一次的数字,但是有一种更为巧妙的方法,就是对遍历数组元素并进行异或运算,异或运算有如下所示的性质,利用异或运算自反的性质就找到那个单身的数字。我们可以从位异或结果第一个为1的 位置进行分组,因为代表这两个数字在这一位必然是一个为0,另一个为1,然后将这两个数分到两个不同的数组中,然后再进行位异或就可以得到这两个单身的数字了。在一个整型数组中,有两个数只出现了一次,别的数都出现了两次 ,请找出这两个仅出现一次的数。原创 2022-10-15 22:18:42 · 136 阅读 · 6 评论 -
模拟实现atoi函数
atoi函数的功能是将字符串转换为整数 ,并且该函数能转换正负数,和对字符串前面的空格进行跳跃,遇到数字进行转换,遇到非数字字符转换结束,还有若转换成整数越界也无法转换。原创 2022-10-15 23:15:36 · 195 阅读 · 2 评论 -
利用宏定义解决问题
对于这个题目,首先用#define定义的宏应该要包含两个参数,一个是结构体变量,另一个是该结构体的成员,因为计算的是偏移量,要用变量的地址减去结构体变量的首地址,那么我们可以假设结构体变量的初始地址为0。原创 2022-10-16 21:23:10 · 124 阅读 · 0 评论 -
C语言——详解位段
位段的声明和结构是类似的,有两个不同:1.位段的成员必须是int、或。2.位段的成员名后边有一个冒号和一个数字。int b:2;int c:6:};此时A就是一个位段类型。原创 2022-09-20 22:29:44 · 142 阅读 · 3 评论 -
C语言——结构体
1.全局变量{int x;int y;}p1;全局变量赋值{int x;int y;}p1={1,2};2.局部变量{int x;int y;};int main(){}3.结构体嵌套{int num;原创 2022-09-17 15:57:50 · 353 阅读 · 8 评论 -
C语言的字符串函数
字符串不能给自己追加:因为在原字符串的‘\0’开始追加,但是当再次准备将'\0'向后追加是,‘\0’已经被原字符串的第一个字母覆盖,这样就不会再有‘\0’,导致陷入无限循环。中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。):用sep所指的字符串中的单个字符作为分隔符,将str所指的字符进行分隔。):在字符串str1找到字符串str2第一次出现的位置,不包含'\0'字符串的比较与字符串的长度无关,注重的是字符串中字符的相应比较。,函数将在同一个字符串中被保存的位置开始,查找下一个标记。原创 2022-09-13 17:16:49 · 380 阅读 · 5 评论