- 博客(12)
- 收藏
- 关注
原创 ⭐详解结构体-位段-枚举-联合体
1.结构体内存大小 在结构体设计时,我们既要满足对齐,又要节省空间,如何做到:这就需要我们让占用空间小的成员尽量集中在一起。例如: 上面是当我们设计为struct s1时,占用空间情况。显然,我们用struct s1更节省空间。 2.修改默认对齐数 当对齐数为1时,s1的最后大小为6 ...
2021-10-08 14:08:20
208
1
原创 内存函数的介绍
strcat使用注意要点: 源字符串必须以‘\0’结束 目标空间必须足够的大,能容纳下源字符串的内容 目标空间必须可修改 模拟实现strcat函数:
2021-10-03 17:25:51
123
原创 关于数据的存储
什么是大小端? 大端(存储)模式:数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中。 小端(存储)模式:数据的高位保存在内存的高地址中,数据的低位保存在内存的低地址中。 下面通过一道例题来分析一下整形的存储: #include<stdio.h> int main() { char a = -1; signed char b = -1; unsigned char c = -1; printf("a=%d,b=%d,c=%d", a, b, c); retu.
2021-08-13 22:38:30
240
原创 函数栈帧的创建和销毁
局部变量是怎么创建的? 为什么局部变量值是随机值? 函数是怎么传参的?传参的顺序是怎样的? 形参和实参是什么关系? 函数调用是怎么做的? 函数调用是结束后怎么返回的? 1.寄存器 ebp,esp这两个寄存器中存放的是地址,这2个地址是用来维护函数栈帧的。 2.按下F10,进入调试,箭头在如图所示这个位置不要动,右键鼠标,进入转到反汇编。(进入这个界面后,鼠标右击,把显示符号名去掉) push 压栈:给栈顶放一个元素。 pop 出栈:给栈顶出一个元素。 调用函数:cal.
2021-08-11 22:33:47
125
原创 打印菱形问题
用C语言在屏幕上输出以下图案: 用line表示打印出来的菱形的上半部分的行数。通过观察可以发现规律,上半部分的每一行,空格数是依次减少一个,line-i-i。*依次是1,3,5,7,......,遵循2*i+1的规律。 在菱形的下半部分,空格数依次增加,*遵循2*(line-1-i)-1的规律。所以,用for循环就可以输出一个菱形。 代码如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int
2021-08-09 22:48:29
160
原创 完成喝汽水问题
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。 total表示总的汽水数,刚开始是20瓶汽水。 empty表示空瓶数,20瓶空瓶可以换10瓶汽水; 10个空瓶可以换5瓶汽水; 5个空瓶可以换2瓶汽水; 此时有3个空瓶,可以换1瓶汽水; 此时有2个空瓶,可以换1瓶汽水; 所以20块钱,可以换39瓶汽水。 代码如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main()
2021-08-08 22:10:36
137
原创 打印水仙花数(自幂数)
求出0~100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。 我们也可以理解为求自幂数。什么是自幂数?度娘是这样解释的: 判断i是否是自幂数 1)计算i的位数; 2)计算i的每一位的n次方之和; 3)判断和是否为i 注意:i要赋给临时变量tmp,如果直接使用,在计算完i的位数后,i的值变了。 代码如下: #include <stdio.h> #inclu
2021-08-07 21:44:22
125
原创 关于矩阵转置问题
输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。 输出描述: 输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。 矩阵转置以后行数和列数互换, 代码如下: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n
2021-08-06 21:21:04
1280
原创 三种方法——统计一个二进制数中1的个数(谷歌考题)
题目描述 写一个函数返回参数二进制中 1 的个数。 比如: 150000 11114 个 1 一、pandas是什么? 工具:VS2019 方法一:取一个数,用for循环,让它的二进制的每一位分别与1相与。当结果为1时,记一次数。 注意:任意取得数有可能是负数,所以这里返回值类型用size_t。 代码如下: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> size_t count_one(int n) {...
2021-08-05 17:06:33
537
1
原创 用C完成一个小游戏:扫雷
目录 前言 二、设计步骤 1.建立菜单 2. 实现过程 3.代码 总结 前言 《扫雷》是我们常见的小游戏,它是一款大众类的益智小游戏,于1992年发行。下面介绍如何实现三子棋游戏的开发。看完后,相信你也可以学会。 一、扫雷是什么? 游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。这款游戏的玩法是在一个9*9(初级),16*16(中级),16*30(高级),或自定义大小的方块矩阵中随机布置一定量的地雷(初级为10...
2021-08-03 23:21:28
175
1
原创 用C完成一个小游戏:三子棋
目录 一、三子棋是什么? 二、使用步骤 1. 菜单 2. 初始化棋盘 3. 打印棋盘 4. 下棋 5. 判断输赢 6. 效果展示 三、代码 test.c game.h game.c 四、总结 前言 在掌握了一些C语言的基础知识后,我们可以尝试完成一个小游戏的创作,下面介绍如何实现三子棋游戏的开发。看完后,相信你也可以学会。 一、三子棋是什么? 将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了...
2021-08-01 22:27:32
522
1
原创 第一次写博客,冲冲冲!!!
一名在校大学生,热爱编程。 目前正在学习编程,平时要多看一些学习视频,查阅书籍,多多上机练习。 想要进入的公司是字节、网易、腾讯等互联网公司,但现在自己能力还尚有不足。计划今后每周至少5天,每天3小时在学习编程,踏实学习,一点一点进步。 “世上无难事,只怕有心人”,努力向着目标冲冲冲! ...
2021-07-16 18:15:02
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅