
C语言
文章平均质量分 85
「已注销」
这个作者很懒,什么都没留下…
展开
-
【C语言进阶】动态内存管理
所以,如果我们把结构体的内存以及其成员要的内存一次性分配好了,并返回给用户一个结构体指针,用户做一次free就可以把所有的内存也给释放掉。有时会我们发现过去申请的空间太小了,有时候我们又会觉得申请的空间过大了,那为了合理的时候内存,我们一定会对内存的大小做灵活的调整。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。包含柔性数组成员的结构体用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构体的大小,以适应柔性数组的预期大小。分配方式类似于链表。原创 2023-01-07 18:43:14 · 651 阅读 · 25 评论 -
【C语言进阶】自定义类型:结构体,枚举,联合体
有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化。原创 2023-01-05 21:13:55 · 1287 阅读 · 18 评论 -
【C语言进阶】字符函数与字符串函数
易错输出结果:>因为strlen函数返回类型是size_t(无符号整型的别称),=-3,-3被当成无符号整型的话,会被编译器当作一个很大很大的数(自然大于零),所以输出 >。模拟实现strlen:法一:计数器法二:递归法三:指针-指针。原创 2023-01-01 18:24:16 · 762 阅读 · 11 评论 -
【C语言进阶】指针的进阶
数组指针是指针?还是数组?答案是:指针。我们已经熟悉:整形指针: int * pint;能够指向整形数据的指针。浮点型指针: float * pf;能够指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针。下面代码哪个是数组指针?//指针数组//数组指针//解释:p2先和*结合,说明p2是一个指针变量,然后指着指向的是一个大小为10个整型的数 //组。所以p2是一个指针,指向一个数组,叫数组指针。原创 2022-12-27 15:49:16 · 817 阅读 · 15 评论 -
【C语言进阶】深度剖析数据在内存中的存储
前面我们已经学习了基本的内置类型:char//字符数据类型short//短整型int//整形long//长整型long long//更长的整形float//单精度浮点数double//双精度浮点数//C语言有没有字符串类型?--没有以及他们所占存储空间的大小。原创 2022-12-23 21:29:25 · 200 阅读 · 11 评论 -
【C语言】初阶习题
求出0~100000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222。原创 2022-12-22 17:24:03 · 1106 阅读 · 14 评论 -
【C语言】实用调试技巧
Grace Hopper在1947年在MarkII机器运行程序时发现的第一个程序“bug”,被贴在她的本子上了。它真的是个虫子。这只夹扁的小飞蛾在MarkⅡ计算机的继电器触点里,它“卡”住了机器的运行,导致运行出错。2.调试是什么?有多重要?所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心有愧, 就必然需要掩盖,那就一定会有迹象,迹象越多就越容易顺藤而上,这就是推理的途径。拒绝-迷信式调试!!!!原创 2022-12-17 22:49:35 · 221 阅读 · 9 评论 -
【C语言】初阶结构体
有了结构体类型,那如何定义变量,其实很简单。{int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明{//名字int age;//年龄};//初始化{int data;//结构体嵌套初始化//结构体嵌套初始化。原创 2022-11-25 11:18:20 · 170 阅读 · 9 评论 -
【C语言】初阶指针
那我们就可以这样理解:内存——电脑上的存储设备(4/8/16G)程序在运行时会加载到内存当中,也会使用内存空间指针变量我们可以通过&(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个变量就是指针变量。原创 2022-11-24 12:31:52 · 548 阅读 · 18 评论 -
【C语言】操作符详解
逻辑反操作-负值+正值&取地址sizeof操作数的类型长度(以字节为单位)~对一个数的二进制按位取反--前置、后置--++前置、后置++*间接访问操作符(解引用操作符)(类型)强制类型转换int main(){2);0);a = -a;p = &a;//这样写行不行?--行//这样写行不行?--不行return 0;}关于sizeof其实我们之前已经见过了,可以求变量(类型)所占空间的大小。原创 2022-11-18 17:13:52 · 1018 阅读 · 8 评论 -
【C语言入门游戏】三子棋的实现———【保姆级教学】
到目前为止,初阶C语言已经学了一半,相信大家学完了选择循环,函数,数组,一直 想找些题目来练练手,今天就让我们来实现一下。原创 2022-11-09 18:25:19 · 1453 阅读 · 5 评论 -
【C语言】函数栈帧的创建和销毁
函数栈帧(stack frame)就是函数调用过程中在程序的调用栈(call stack)所开辟的空间,这些空间是用来存放:函数参数和函数返回值临时变量(包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)保存上下文信息(包括在函数调用前后需要保持不变的寄存器)栈(stack)是现代计算机程序里最为重要的概念之一,几乎每一个程序都使用了栈,没有栈就没有函数,没有局部变量,也就没有我们如今看到的所有的计算机语言。原创 2022-11-07 23:40:37 · 423 阅读 · 3 评论 -
【C语言】数组
数组是一组相同类型元素的集合【注】数组创建,在C99标准之前,[ ]中要给一个才可以,不能使用变量。在C99标准支持了变长数组的概念,数组的大小可以使用变量指定,但是数组不能初始化。原创 2022-11-08 16:23:15 · 193 阅读 · 2 评论 -
【C语言】递归经典题目补充
编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列,不是逆序打印。要求:不能使用C函数库中的字符串操作函数。原创 2022-11-05 22:47:47 · 173 阅读 · 8 评论 -
【C语言】递归经典题型
操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。按照这个递推规律, 对于一般的, 一根柱子上有N个圆盘, 小圆盘始终放置在大圆盘上, 最小的两个圆盘是一样大小的, 那么。一只青蛙一次可以跳上1级台阶,可以跳上2级台阶,也可以跳上3级。一只青蛙一次可以跳上1级台阶,也可以跳上2级。一般情况,一根柱子上有N个圆盘, 小圆盘始终放置在大圆盘上, 最小的两个圆盘是一样大小的。3.不能将较大的圆盘放置在较小的圆盘上.原创 2022-11-05 17:44:50 · 1988 阅读 · 2 评论 -
【C语言】函数
自定义函数和库函数一样,有。原创 2022-11-04 09:14:22 · 307 阅读 · 4 评论 -
【C语言】刷题(1)
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。无十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。printf可以使用使用格式控制串“%o”、“%X”原创 2022-10-30 14:37:12 · 307 阅读 · 5 评论 -
【C语言】分支循环练习题
编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。编写代码,演示多个字符从两端移动,向中间汇聚。在一个有序数组中查找具体的某个数字。原创 2022-10-29 19:50:40 · 304 阅读 · 6 评论 -
【C语言】分支语句和循环语句
表达式语句函数调用语句控制语句复合语句空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1.条件判断语句也叫分支语句:if语句、switch语句;2.循环执行语句:do while语句、while语句、for语句;3.转向语句:break语句、goto语句、continue语句、return语句。原创 2022-10-28 14:01:54 · 148 阅读 · 3 评论 -
【C语言】初识C语言
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。原创 2022-10-27 22:58:30 · 1236 阅读 · 3 评论