![](https://img-blog.csdnimg.cn/5809acd8056046938c974ae5db22697b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
关于C
文章平均质量分 68
C内容随笔
石子君
今天你学习了吗?
展开
-
动态内存分配函数详解以及代码示例
1.动态分配相关函数malloc、calloc、realloc、free,可以灵活分配内存空间,使用完之后必须free2.例malloc开辟空间,参数size不能过大,超过堆区空间则分配失败,一般采用sizeof函数创建所需空间大小3.封装函数开辟内存空间,返回值必须是该变量地址,否则NULL4.free完之后,要把记录释放位置的指针置空。...原创 2022-07-24 16:05:47 · 928 阅读 · 0 评论 -
设计模式之工厂模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式总共有 23 种,这些模式可以分为三大类:创建型模式、结构型模式、行为型模式,是从建筑设计领域引入到计算机科学中来的,代表代码设计经验的总结,代码更容易被他人理解,保证代码可靠性、程序的重用性,拓展性更强。算法不是设计模式,算法致力于解决问题而非设计问题。设计模式原创 2022-07-13 19:21:56 · 252 阅读 · 0 评论 -
C语言冒泡、选择、直插算法
C语言冒泡、选择、直插算法原创 2022-07-13 15:30:50 · 347 阅读 · 0 评论 -
形参和实参的区别
实际参数简称“实参”。在调用有参函数时,函数名后面括号中的参数称为“实际参数”,实参可以是常量、变量、表达式或者函数。需要注意的是,在进行函数调用时,这些实参必须要有明确的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。在调用函数过程中发生的实参与形参间的数据传递,常称为“虚实结合”。自定义函数中的“形参”全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。实参和形参可以重名。形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。必须注意实参的原创 2022-07-12 16:02:04 · 20655 阅读 · 0 评论 -
C语言中常见字符串API详解
以下均为笔记,草率见谅,首先介绍下在字符串章节所用的函数,再介绍几个常见的apimalloc 函数原型:void *malloc(size_t size)C库函数void *malloc(size_t size)分配所需的内存空间,并返回一个指向他的指针free C库函数void free(void *ptr)释放之前调用calloc、malloc或者realloc所分配的内存空间作用:1释放,防止内存泄漏 2防止悬挂指针(野指针的一种)普通的变量、数组是在栈上开辟空间,可以自动回收;而malloc在原创 2022-07-11 10:34:10 · 623 阅读 · 0 评论 -
strcpy、strncpy与memcpy的区别你了解吗?
作用:函数memcpy从source指向的对象中复制n个字符到destin指向的对象中返回值:函数memcpy返回destin的指针。作用:函数strcpy把src指向的串(包括空字符)复制到dest指向的数组中,src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回值:函数strcpy返回dest的指针。作用:复制字符串source中的内容(字符,数字、汉字….)到字符串destinin中,复制多少由maxlen的值决定。source和destinin所指内存区域不可以原创 2022-07-11 10:15:19 · 2281 阅读 · 0 评论 -
计算结构体的大小(面试常考)
关于结构体,我之前也介绍了下,只不过太笼统的概念,(学习笔记——共用体和结构体的区别以及共用体的覆盖问题),现在整理详细的计算方法。1.初始化2.定义变量后按字段赋值3.结构体变量的赋值结构体位域位域类型: char, short,int 可带上(signed或者unsigned)位域的定义:位域的好处:①并不需要完整的字节,节省存储空间,处理简单;②方便利用位域把一个变量按位域分解;但是不利于程序的移植!!1.结构体偏移量的概念:结构体中的偏移量指的是一个成员的实际地址和结构体首地址之间的距离。原创 2022-07-10 02:16:53 · 512 阅读 · 0 评论 -
sizeof和strlen你真的清楚了吗?
以下大幅摘自https://blog.csdn.net/magic_world_wow/article/details/80500473感谢好文不再迷茫。sizeof是在编译的时候就将结果计算出来了,是类型所占空间的字节数,所以以数组名做参数时计算的是整个数组的大小。而strlen是在运行的时候才开始计算结果,这是计算的结果不再是类型所占内存的大小,数组名就退化为指针了。sizeof不能计算动态分配空间的大小。具体区别举例示意如下:总结*sizeof 是操作符, strlen为函数。*size原创 2022-07-10 01:12:02 · 199 阅读 · 0 评论 -
C语言小游戏贪吃蛇
下面是注解:snake项目需要用到ncurse,相比较gets、getchar和scanf,ncurse不需要回车,并且响应速度快。ncurse编译后面要加 -lcursesinitscr();//ncurse界面的初始化函数printw(“This is a curses window.\n”);//ncurse模式下的printfgetch();//getch();是等待用户输入,没有这句话,程序就退出了endwin();//程序退出,调用endwin来回复shell的终端显示,没有endwin,原创 2022-07-08 02:39:42 · 301 阅读 · 0 评论 -
运算符的计算(按位与 按位或 异或 取反)
运算规则:依次比较两个二进制数的每一位,,按照有0则0,否则为1的规则,依次计算出一个新的二进制数即:0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1例: 39 & 21 --> 0010 0111 & 0001 0101 --> 0000 0101运算规则:依次比较两个二进制数的每一位,,按照有1则1,否则为0的规则,依次计算出一个新的二进制数即:0 | 0= 0 ,0 | 1= 1,1 | 0= 1, 1 | 1= 1例: 39 | 21 --> 0010 0111 |转载 2022-07-06 05:28:31 · 141 阅读 · 0 评论 -
C语言中volatile关键字的作用
volatile 的作用 是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。如上代码,如果选择编译器优化,可能会被编译成如下代码(当然不是在C语言层面上优化,而是在汇编过程优化,只是使用C程序举例):因为在仅仅从main主函数来看,a == b是必然的,那么在什么情况,a 和 b不是必然相等呢?volatile 常见的几个面试题:1、一个参数既可以是const还可以是volatile吗?可以,例如只读的状态寄存器。它是 volatile 因为它可能被意想不到地改变。它是 con原创 2022-07-06 05:10:18 · 11940 阅读 · 1 评论 -
学习笔记——链表的增删改查
C语言的链表章节还是很重要的(因为男),还是挺有意思的,有头有尾,串联起来,不触碰数据结构的双链、栈队列等等,他就是一条蛇,可以进行基本的增删改查的操作,简单记录一下敲的代码。。。链表的定义来看看度娘说的:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。简单说就是物理空间不靠着,逻辑上.原创 2022-05-13 21:33:38 · 458 阅读 · 0 评论 -
学习笔记——共用体和结构体的区别以及共用体的覆盖问题
共用体在 C 语言中,允许几种不同类型的变量存放到同一段内存单元中,这种几个不同的变量共同占用一段内存的结构,被称为共用体类型结构,简称共用体。一般定义 形式为:union 共用体名{数据类型 成员名 1;数据类型 成员名 2;…};只有先定义了共用体变量,才能在后续的程序中引用它。不同于结构体的是,共用体变量的内存空间是连续的一大块,这几个变量共用这一块空间,所以要注意值被覆盖的问题。而结构体是在这连续的一大块空间中,给每个变量又划清了界限,各自拥有自己的空间,但是他们的起始地址都是连着原创 2022-05-02 02:01:52 · 844 阅读 · 0 评论 -
一篇文章牢记数据类型
数据类型整理下C语言中数据的类型,放两张百度的图。整型有符号的一般说int、short、long、longlong四种,前面加上signed,一般省略,longlong我没咋看到过(太菜了)不讲了。无符号是用unsinged表示,没有方向,表示数量,无符号数不可能是负数。1.int 整型int是4个字节,-2(32-1) – 2(32-1)-1 (即 -2147483648 ~ 2147483647)printf打印输出%d2.short 短整型数据类型大小是 2 字节,能表示的数值范原创 2022-05-02 01:20:08 · 254 阅读 · 0 评论 -
学习笔记——指针那些事儿
指针概况关于指针这一块儿,学起来容易迷,当然也是C语言的重点。下面详细说说指针的类。指针是特殊的变量,相当于地址,指针里面存储的数据数值实际上就是内存地址。需要考虑四个方面:指针的类型,指针所指的类型,指针的值(地址),指针本身的地址(内存空间)。需要注意的是,指针的类型和指针所指的类型不一样,不可以混为一谈。比如:int * p;int *p();int *p[4];int (*p)[4];…等等,指针类型可以简单记为去掉指针名称,而指针所指的类型可以简单记为去掉指针名称和名称前面的 *原创 2022-04-23 23:26:16 · 1247 阅读 · 0 评论