
C语言
文章平均质量分 87
C语言逐步剖析
敷敷_
一位想成为优秀程序员的小小奋斗者
展开
-
【C语言】进阶测试 (呕心沥血式讲解)
A:宏定义不检查参数正确性,会有安全隐患B 宏定义的常量更容易理解,如果可以使用宏定义常量的话,要避免使用const常量c 宏的嵌套定义过多会影响程宁的可读性,而且很容易出错D相对于函数调用,宏定义可以提高程序的运行效率A 预处理 B 编译 C 链接 D 执行A 60 B 190 C 248 D 上述答案都不对char a;int b;float c;double d;原创 2023-10-23 17:30:53 · 290 阅读 · 4 评论 -
【C语言】进阶——程序编译
define reg register //为 register这个关键字,创建一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把 break写上。// 如果定义的 stuff过长,可以分成几行写,除了最后一行外,每行的后面都加一个反斜杠(续行符)。注在宏定义时,最好不要加分号因为宏定义标识符,并不会进行计算,在编译阶段进行的是内容替换int main()if (1)max = MAX;原创 2023-10-21 17:34:00 · 288 阅读 · 1 评论 -
【C语言】进阶——文件操作
我们平常运行程序的数据都是在内存中,当程序结束后,数据便也不存在了,当我们需要之前的数据时,又需要重新输入,在这种情况下, 将数据保存到文件当中是尤为重要且必须的。(介绍的函数均需要引用头文件<stdio.h>。磁盘上的文件是文件。文件可以是文本文档、图片、程序等等但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。将数据放入文件中,相比代码程序中堆栈上的数据,其优点在于可以随时做到需要时添加、舍弃时删除,数据可以持久化。原创 2023-10-15 18:15:49 · 305 阅读 · 4 评论 -
【C语言】进阶——动态内存管理
malloc函数向内存申请一块连续可用的空间,返回这个空间的指针。size为需要开辟空间的字节数malloc开辟的空间并没有初始化!int main()//开辟10个整型大小的空间 赋值给指针p//判断是否开辟成功if (p!for (i = 0;i < 10;i++)//将空间元素置0return 0;如果开辟成功,则返回一个指向开辟好空间的指针如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。原创 2023-10-09 20:02:21 · 282 阅读 · 27 评论 -
【C语言】进阶——结构体+枚举+联合
struct Stu //类型声明//名字int age;//年龄//初始化。原创 2023-09-25 20:21:55 · 1544 阅读 · 36 评论 -
【C语言】进阶——字符串和内存函数
它的第一参数是需要被分割的字符串的首地址,第二个参数也是字符串的首地址(不分先后)sretok函数通过给定的分隔符的字符集合中的字符去把字符串分割成若干个子字符串。mencpy函数是拷贝两块无关的内存区域数据的函数,它会从源数据中的起始位置拷贝。如果字符串2能在字符串1中找到,返回字符串2在字符串1中出现的起始位置;注意如果分隔符的字符集合中的字符不是待分割字符串的字符,是无法分割。它的两个参数都是指针,两个指针分别指向待比较的起始位置,第二个参数是源字符串内容的起始位置,即被拷贝的字符串。原创 2023-09-20 17:07:57 · 271 阅读 · 11 评论 -
【C语言】进阶——指针
在之前【C语言】入门——指针介绍了指针的概念1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。2.指针的大小是固定的4/8个字节(32位平台/64位平台)。3. 指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。4. 指针的运算。这一篇介绍更深度的指针内容。原创 2023-09-16 17:59:52 · 688 阅读 · 30 评论 -
【C语言】初阶测试 (带讲解)
以下不能使变量 year 中的值增至 1010 的语句是A *p+=1;B (*p)++;C ++(*p)D *p++*p++ p会先跟++结合,就会跳到下一个整型地址,题目要的是通过&year修改值;选D。原创 2023-09-08 09:39:14 · 715 阅读 · 25 评论 -
【C语言】进阶——深度剖析数据的存储
大端字节序存储:把一个数据的低位字节处的数据存放在内存的高地址处高位字节处的数据存放在内存的低地址处小端字节序存储:把一个数据的低位字节处的数据存放在内存的低地址处高位字节处的数据,存放在内存的高地址处//如何判断机器大小端int main()int a = 1;//因为char是一个字节,而int是四个字节//如果是小端 01 00 00 00//大端: 00 00 00 01printf("小端\n");elseprintf("大端\n");return 0;原创 2023-09-07 14:35:58 · 411 阅读 · 1 评论 -
【C语言】入门——概括介绍
/下标 0 1 2 3 4 5 6 7 8 9数组的下标是从0开始的,可以通过下标来进行数组的访问,修改等操作。原创 2023-08-09 12:42:28 · 161 阅读 · 14 评论 -
【C语言】入门——分支和循环语句
因为w等于5后,进入了if语句后,执行了continue,跳过了下面的代码,导致w一直等于5,卡在这里。do while语句和while语句不同的是,do while语句,上来直接执行一次循环语句,在进行while表达式的判断。当i等于5时,进入语句执行continue,跳过下面的程序,进行表达式3 条件调整,变成了6继续执行循环。原创 2023-08-12 23:11:40 · 260 阅读 · 12 评论 -
【C语言】入门——函数
自定义函数是非常重要的,这是由我们自己设计的函数,给予了程序员很大的一个发挥空间。-定义一个函数,找到两个整数的最大值。(x):(y);函数的名字,参数,返回类型。函数必须满足先声明后使用。但是在一般开发中,函数的声明都在头文件中,方便团队一起工作。函数的定义就是指函数的功能,写入想要的函数体即可。原创 2023-08-28 10:49:03 · 145 阅读 · 19 评论 -
【C语言】——调试技巧
调试:英文DeBug,又称作是除错,是发现和减少计算机程序设备中和电子仪器错误的过程。调试其实就是找出bug,计算机有bug一定是程序的问题。我们的调试环境:VS2019,当然VS系列方法都大同小异,掌握核心方法就行了。原创 2023-09-05 08:30:00 · 443 阅读 · 9 评论 -
【C语言】入门——数组
所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。数组在创建的时候如果不指定大小就得初始化,数组的元素个数根据初始化的内容来确定。1.数组再内存中是连续存放的,随着下标的增长,数组元素的地址由低到高。C99之后,引用了变长数组,数组的大小可以用变量表示。都不支持变长数组,变长数组不能初始化,就是不能赋一些值。数组名就是地址,通常来说:数组名是数组首元素的地址。除此之外,所有遇到的数组名都是数组首元素的地址。数组传参的本质是指针,传递的是数组首元素地址。原创 2023-09-01 20:49:03 · 211 阅读 · 3 评论 -
【C语言】入门——操作符
: //按位异或 如果其中一个操作数中的位为 0,而另一个操作数中的位为 1,则相应的结果位设 置为 1。异或运算的规则是:如果两个对应位的数相同,则该位结果为0;2. ( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。因为元素在内存中是以二进制存储的,移的位都是二进制位,先把元素转换成二进制数。&: //按位与 :只有两个数的二进制同时为1,结果才为1,否则为0。4.% 操作符的两个操作数必须为整数,返回的是整除之后的余数。原创 2023-09-02 08:00:00 · 202 阅读 · 7 评论 -
【C语言】入门——指针
👍.在32位机器上地址的大小是4个字节,所以指针变量的大小也是4个字节同理:在64位机器上地址的大小是8个字节,所以指针变量的大小也是8个字节。允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。👍 指针就是指针,指针变量就是一个变量,存放的地址,指针变量的大小是4/8。👍指针-指针的前提:两个指针指向同一块区域,指针类型是相同的;👍变量的创建可以使用不同的类型,而指针也有不同的指针类型。原创 2023-09-03 08:30:00 · 2216 阅读 · 16 评论 -
【C语言】入门——结构体
在平常生活中,我们记录一个一个学生的信息,往往是每人一张信息卡,这里面记录了名字,身高等信息,这些不是简单的整型,数组就能解决的。函数传参的时候,形参是实参的一份拷贝,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的 下降。👍结构体类型的作用域与普通变量的作用域相同:在函数内定义,则仅在函数内部起作用;以上是简单的对C语言中结构体的介绍,不足之处还望指点。结构体和数组不同,同一类型的数据的集合是数组;结构体传参的时候,要传结构体的地址。原创 2023-09-04 08:15:00 · 712 阅读 · 6 评论