
C
文章平均质量分 93
C语言讲解
星纭
踏上取经路,比抵达灵山更重要。
展开
-
C从零开始实现贪吃蛇大作战
贪吃蛇大作战实现原创 2024-05-26 12:00:00 · 2448 阅读 · 52 评论 -
Win32 API
Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤ 的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程序达到开启 视窗、描绘图形、使⽤周边设备等⽬的,由于这些函数服务的对象是应⽤程序(Application),所以便 称之为Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows 32位平台的应⽤程序编程接⼝。原创 2024-05-26 08:00:00 · 2210 阅读 · 19 评论 -
文件操作讲解
在程序设计中,我们讨论的文件一般有两种:程序文件,数据文件(从文件的功能的角度来分类)原创 2024-04-04 13:32:40 · 801 阅读 · 10 评论 -
动态内存管理
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译方式就不能满足了。C语言引入了动态内存开辟,这样我们自己可以根据情况自行申请和释放空间,就比较灵活。动态内存是计算机中一种特殊的内存,用于存储在程序运行时创建和使用的数据。动态内存通过使用堆来分配和管理内存。与静态内存相比,动态内存的大小和生命周期不是在编译时确定的,而是在运行时根据程序的需求进行动态分配和释放。原创 2024-03-29 14:52:57 · 1087 阅读 · 2 评论 -
联合与枚举
自定义类型有三种:结构体,联合体,枚举。结构体已经讲解完了,接下来我们学习联合体和枚举。原创 2024-03-29 09:30:26 · 801 阅读 · 7 评论 -
结构体讲解
位段的成员必须是int 或者unsigned int或者signed int ,在C99中位段成员的类型也可以选择其他类型位段的成员名后面后一个冒号和一个数字。int b:5;int c:10;int d:30;A就是一个位段类型那么位段A所占内存的大小是多少?答案是8.为什么呢?变量名的后面跟着一个冒号数字代表这个数字只占多少个bit位。比如int c:10,表示这个c变量占据了10个bit位。原创 2024-03-25 17:45:25 · 1007 阅读 · 4 评论 -
atoi函数
如果这种非数字的字符串在前面就会解析失败,也就是所想要成功转化,这个字符串中的数字就必须在前面。返回值:如果解析失败,这个函数就会返回0(字符串中的数字字符是0也会返回0,并不一定失败)。这个函数讲“123”这样的字符串转化为了123.也就是将字符串中的整数提取出来了作为了整形数据进行返回。这个函数的作用是将str所指向的字符串进行解析得到一个整形的数据,在将其作为返回值。这个函数对字符串进行读取的时候,首先会跳过前面的所以空格字符。这个字符串中在整数字符的后面是可以包含额外的字符的。原创 2024-03-23 20:38:08 · 577 阅读 · 0 评论 -
浮点数在内存中的存储
当数据在内存中的大小超过一个字节的时候,这时候就有了存储顺序的问题,根据不同的存储顺序,分为了大端字节序存储和小端字节序存储。大端字节序存储:一个数据的低位字节的内容保存在高地址处,而高位字节的内容保存在低地址处,我们就将其称为大端字节序存储小端字节序存储:一个数据的低位字节的内容保存在低地址处,而高位字节的内容保存在高地址处,我们就将其称为小端字节序存储。原创 2024-03-23 20:38:06 · 1136 阅读 · 1 评论 -
C语言内存函数
strcpy是复制字符串,而memcpy就是复制内存块。memcpy会从source所指向的空间复制num个字节(不是元素个数而是字节)到destination所指向的空间。source和destination所指向的的对象的类型是不重要的,这个函数仅仅是对二进制数据的拷贝。这个函数与strcpy不同,它是不会管‘\0’的,总是精准的复制num个字节。为了避免越界。source和destination所指向的空间的大小至少应该是num个字节。原创 2024-03-22 20:52:37 · 1177 阅读 · 1 评论 -
字符函数与字符串函数
函数功能是返回字符串的长度。字符串的长度是有'\0'字符决定,它之前的字符个数就是字符串的长度。C字符串的长度等于字符串开头和'\0'字符之间的字符数.注:字符串长度是不包括'\0'的注意字符串的长度是与包含字符串的数组的大小不一样的。通过调试,我们可以发现,这个数组的类型是char[7]说明这个数组大小是7,但是字符串的长度是6。所有我们如果给【】中加上值,这个值的大小至少要是7,不能比7小不如就存不下这个字符串。那么多余的值就会被初始化为'\0'.原创 2024-03-22 20:52:13 · 960 阅读 · 1 评论 -
C语言--- 指针运算笔试题详解
解析:a是数组首元素的地址,类型为int*,+1跳过一个元素,再解引用就是第二个元素。&a是整个数组的地址,+1跳过整个数组,再强制类型转化为int*类型,-1就是数组最后一个元素的地址,解引用后就是最后一个元素。答案:2,5。原创 2024-03-11 20:02:08 · 657 阅读 · 1 评论 -
C语言 --- 指针(5)
sizeof(数组名),这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩。& 数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址。除此之外所有的数组名都表⽰⾸元素的地址。原创 2024-03-10 13:56:40 · 971 阅读 · 1 评论 -
C语言---指针(4) qsort函数
读者可以自行用上面的数进行尝试,我们会发现最大的那个数经过了一轮交换后(因为最大的数一定比它右边的数大,所以它会一直交换下去,直到最后一个位置),就到了最后一个位置,但其他的数还是乱的,所以我们要接着进行下一轮交换,但是因为最大的数已经在它该在的位置上了,这样在下一轮的交换中我们就不需要比较第九个数和第十个数了;同理后面也是如此……第九轮的时候比较一次,也就是第一个位置上的数和第二个位置上的数进行比较,第二个位置上的数确定了后,同理第一个位置上的数也应该是最小的了,所以就不用比较了。不再是张三,38岁。原创 2024-03-04 18:01:53 · 1043 阅读 · 1 评论 -
C语言--- 指针(3)
在指针的类型中,我们知道有一种指针类型为字符指针这里是把一个字符串放到了pstr的指针变量里了吗?其实不是,本质上是将字符串的首字符的地址放到了pstr中。在解引用后我们会发现打印的是h,也就是将字符串中首字符h的地址存放到了指针中因为pstr的类型是char*,所以+5会跳过五个字节从而只打印了后面的world。这也证明了pstr储存的就是首字符的地址。虽然这个代码在编译的时候并不会报错,但是程序运行时会崩溃。为什么呢?因为“hello world”是常量字符串,常量字符串是不能修改的。原创 2024-02-27 08:00:00 · 1136 阅读 · 1 评论 -
C语言--- 操作符详解(下)
C语言中的整形运算总是至少一缺省整形类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整形,这种转换称为整形提升。整型提升的意义在于:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度。原创 2024-02-23 13:23:10 · 1290 阅读 · 2 评论 -
C语言 --- 指针(2)
读者可以自行用上面的数进行尝试,我们会发现最大的那个数经过了一轮交换后(因为最大的数一定比它右边的数大,所以它会一直交换下去,直到最后一个位置),就到了最后一个位置,但其他的数还是乱的,所以我们要接着进行下一轮交换,但是因为最大的数已经在它该在的位置上了,这样在下一轮的交换中我们就不需要比较第九个数和第十个数了;第九轮的时候比较一次,也就是第一个位置上的数和第二个位置上的数进行比较,第二个位置上的数确定了后,同理第一个位置上的数也应该是最小的了,所以就不用比较了。指针数组的每一个元素都是用来存放地址的;原创 2024-02-25 12:00:00 · 1296 阅读 · 1 评论 -
C语言---详解问题表达式
表达式的求值部分又操作符的优先级和结合性决定。但是并不能完全决定计算顺序,这会根据编译器的不同而体现不同的计算顺序;表达式1中,在计算的时候,由于乘法*的优先级高于加法,只能保证相邻情况下,*的计算比+的计算更早,如:并不能决定表达式中的第三个乘号*比第一个加号+更早执行。所以表达式的计算顺序可能会分为两种。有人可能会想,虽然计算顺序不同,但是结果是一样的。那么这个表达式到底有没有问题呢?其实是有的。如果表达式中的abcdef不单纯是变量,也是表达式的话。原创 2024-02-24 10:00:00 · 1659 阅读 · 1 评论 -
C语言--- 操作符详解(上)
操作符原创 2024-02-21 15:49:59 · 1593 阅读 · 0 评论 -
C语言--- 函数递归
函数递归原创 2024-01-29 18:56:25 · 1864 阅读 · 0 评论 -
C语言--- 指针(1)
一.内存和地址1.1内存CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中。计算机把内存划分为一个个的内存单元,每个单元的大小取一个字节。每一个比特位可以存放一个2进制的数字0或者1。一个字节空间可以存放8个比特位。为了方便CPU快速寻找到每一个空间,每个内存单元都有一个编号。在计算机中我们把内存单元的编号称为地址。。原创 2024-01-15 20:40:09 · 1077 阅读 · 0 评论 -
C语言---- 扫雷游戏
扫雷原创 2023-12-25 21:19:40 · 1093 阅读 · 0 评论 -
C语言--- 函数
函数原创 2023-12-21 19:50:22 · 1040 阅读 · 0 评论 -
C语言---数组
数组原创 2023-12-18 20:32:52 · 950 阅读 · 0 评论 -
C语言---分支与循环(下)—— 猜数字
rand,srand,time函数原创 2023-12-15 20:02:03 · 1034 阅读 · 0 评论 -
C语言---分支和循环语句(上)
C语言分支和循环语句(上)原创 2023-12-08 17:00:19 · 1002 阅读 · 0 评论