![](https://img-blog.csdnimg.cn/direct/109695a7faca482a96ae3dcd059878d5.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 88
记录在学习过程中的语法点
甜甜向上呀
耐心是生活的关键
展开
-
【C语言】联合(共用体)
联合体的声明,变量的创建,特点,联合体的大小计算,判断大小端,联合体的优缺点原创 2024-06-12 19:01:40 · 895 阅读 · 6 评论 -
【C语言】位段(结构体实现位段)
位段的定义,声明,内存分配,在内存中的存储方式,位段的优点,位段的跨平台问题,位段的应用,位段使用的注意事项原创 2024-06-03 20:32:21 · 1168 阅读 · 12 评论 -
【C语言】结构体
结构体的声明,结构体变量的创建和初始化,结构的特殊声明,结构体的自引用,结构体成员的访问,结构体传参原创 2024-05-30 16:58:14 · 789 阅读 · 8 评论 -
【C语言】指针(三)
介绍了字符指针,数组指针,二维数组和数组名的理解,二维数组传参,函数指针及其使用,函数指针数组,转移表的实现原创 2024-05-21 19:38:35 · 1260 阅读 · 26 评论 -
【C语言】指针(二)
传值调用和传址调用,数组名的理解,通过指针访问数组,一维数组传参的本质,指针数组,指针数组模拟实现二维数组原创 2024-05-15 23:30:35 · 956 阅读 · 22 评论 -
【C语言】指针(一)
内存,指针变量,指针类型的意义,野指针,指针运算,二级指针原创 2024-05-13 14:41:03 · 882 阅读 · 21 评论 -
【C语言】进制转换
2进制和10进制是类似的,只不过2进制的每一位的权重,从右向左分别是:2^0,2^1,2^2 .......如:2进制的01101011,换成16进制为:0x6b (十六进制位的数字,以0x开头)如:二进制的01101011,换成8进制为:0153。我们知道,数值是由不同的进制表示的,可以用二进制、八进制、十进制、十六进制表示。可以先将10进制转换为2进制,2进制再转换为16进制。先将该进制转换为2进制,再转换为我们想要的进制。分别是:10^0,10^1,10^2。2进制的数字每⼀位都是由0~1组成。原创 2024-04-26 15:28:45 · 320 阅读 · 9 评论 -
【C语言】字符串函数
只不过程序启动的时候errno是0,表示没有错误,当我们在使用标准库中的函数的时候发生了某种错误,就会让对应的错误码,存放在errno中。打印的时候,先打印传给perror的字符串,然后打印一个冒号,紧接着打印一个空格,最后打印错误码对应的错误信息。如果source指向的字符串的长度小于num的时候,只会将字符串中到\0的内容追加到destination指向的字符串末尾。因为\0是字符串结束的标志,此处追加5个字符,world在56789的位置,如果追加上一个\0,那么[10]的位置就是\0。原创 2024-04-29 14:10:22 · 890 阅读 · 18 评论 -
【C语言】函数
本来可以不用函数的声明,函数的定义利用函数的外部链接属性也可以实现,但分开写可以把函数的实现这个模块变成静态库,静态库是二进制的,是看不懂的。我们可以把函数想象成小型的一个加工厂,工厂得输入原材料,经过工厂加工才能生产出产品,函数也是一样的,函数一般会输入一些值(可以是0个,也可以是多个),经过函数内的计算,得出结果。因为C语言编译器对源代码进行编译的时候,是从第一行往下扫描的,当遇见Add函数调用的时候,并没有发现前面有Add的定义,就会报出上述的警告。同时库函数的质量和执行效率上都更有保证。原创 2024-05-06 22:34:58 · 1289 阅读 · 7 评论 -
【C语言】static关键字用法
代码2:运行结果可知,被static修饰过后的i,它的值是有累加效果的,在头一次进入test函数后,创建了i后,出函数是不会被销毁的。如果一个函数被static修饰,外部链接属性就变成了内部链接属性,其它源文件(.c)就不能再使用该函数,只能在自己所在的源文件内部使用。使用建议:如果一个全局变量,只想在所在的源文件内部使用,不想被其他文件发现,就可以使用static修饰。使用建议:一个函数只想在所在的源文件内部使用,不想被其他源文件使用,就可以使用static来修饰。外部链接属性就变成了内部链接属性,原创 2024-05-07 18:23:18 · 839 阅读 · 30 评论 -
【C语言】动态内存管理
原因:free的意思是把空间的使用权限还给了操作系统,但是p还记得malloc时候的地址,还指向那块不属于自己的空间,所以一旦free完之后,p就是野指针了,所以把p置空,p=NULL,避免出现问题。当我们申请的内存空间空间过大或者过小的时候,为了合理使用内存,我们可以使用realloc函数,用来对动态开辟的内存的大小做出灵活的调整。calloc函数开辟空间的时候,它开辟好空间之后会把内容初始化为0,然后再把这块空间的。当是情况2的时候,在堆空间上找一块新的连续可用的空间,旧的空间释放掉,原创 2024-04-25 15:43:39 · 781 阅读 · 12 评论 -
【C语言】数组(一维数组和二维数组)
变长数组的意思是数组大小是可以使用变量来指定,在程序运行的时候,根据变量的大小来指定数组的元素个数,而不是数组的大小是可变的。当使用数组的类型的时候,数组的类型是必须加上元素个数的,它的元素个数也是类型的一部分,如果不加元素个数,就会报错。例如:int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};指定的是数组中存放数据的类型,可以是:char,short,int,float等,也可以是自定义类型。arr[0][4]和[1][0](即两个5)地址一样。原创 2024-04-24 00:00:18 · 884 阅读 · 7 评论 -
【C语言】分支语句和循环语句
只有在 switch 语句中使用break ,才能在跳出 switch 语句,如果某一个 case 语句的后边没有 break 语句,代码就会继续往下执行,有可能执行其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。控制语句用于控制程序的执行流程,以实现程序的各种结构方式,(c语言支持3种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,c语言有九种控制语句。例如多分支语句那里,只能执行其中的一条(即只能执行语句1,或者语句2,或者语句3)。原创 2024-04-20 12:42:17 · 813 阅读 · 10 评论