- 博客(20)
- 收藏
- 关注
原创 结构体是什么
在c语言中,咱们的数据类型有int ,float, char等等,但是这些类型不足以让我们描述一个具体的类型。比如我们想描述一个人,会提及ta的性别、名字、年龄等等,这时我们创建一个结构体来描述人会很方便。在这个例子中介绍了结构体的具体用法,打印结果为。
2024-04-01 21:06:33 233
原创 结构体的内存对齐
结构体的内存必须是最大对齐数的整数倍,这个例子中最大的对齐数是int 的4字节,int类型放数据的时候,要从4的倍数的位置开始放,即从起始偏移量为12时开始放,有个东西叫对齐数,结构体内存按对齐数来放,从起始偏移量为0的地方开始放,那么4+1+1=6,还差的2字节从哪里冒出来的呢?char类型对齐数是1,承接上面的内存放下来即可。short类型对齐数是2,要从2的倍数开始放.8是4的倍数,而6不是,故内存为8字节。同理char类型,对齐数是1,放1.答案是4,因为4比8小,谁小放谁。
2024-04-01 21:06:17 146
原创 浮点数在内存中的存储
对于64位的浮点数,最⾼的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。1.首先我们得学会如何把一个十进制的浮点数化为二进制。注:上图中的-110是二进制数,化为十进制数为-6。
2024-03-28 21:58:48 143 1
原创 什么是大小端字节序?以及如何判断大小端字节序
1.先明确整数在内存中以补码的形式存放,超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题。
2024-03-28 21:39:27 225 1
原创 什么是指针(初学者版)
1.指针是拿来存放地址的,指针是地址,地址是指针。2.指针变量自身也有地址二级指针存放一级指针地址三级指针存放二级指针地址……
2024-03-24 15:50:02 93 1
原创 memcpy函数的模拟实现
当然,我们模拟实现的memcpy函数也可以是void类型,无需传参,因为我们用的是指针,直接对内存下手了。比如有两个字符串s1,s2,我们想用字符串s2覆盖s1,这时就可以使用memcpy函数啦。首先介绍memcpy函数的作用和参数。让我们开始实现一个简单的模拟实现。改变参数,看看有何效果。
2024-03-22 00:03:50 201 1
原创 分清int*const p, int const*p ,const int* p
如何分清int*const p, int const*p ,const int* p呢?说说我发现的小规律, 被const修饰的之后的值不变,并且 int const* p与const int* p是等价的。
2024-02-03 17:54:59 562 1
原创 字符串旋转
假设给你一个字符串ABCD,要求旋转几个字符ABCD旋转1个字符变为BCDAABCD旋转2个字符变为CDBA那么如何用代码实现呢,下面介绍两种方法(两种方法均不涉及另外创建数组)
2024-02-02 09:00:00 435
原创 交换2个变量(运用^运算符)
5转换为二进制为 00000000000000000000000000000101。3转换为二进制为 00000000000000000000000000000011。^按位异或,1^1=0,0^0=0,1^0=1。
2024-01-24 21:47:37 455 1
原创 斐波那契数列的递归和非递归解法
给定第一个值1,第二个值1,第三个值就为第一个值和第二个值的和;第n个值就为第n-1个值和第n-2个值的和;以此为规律,编写代码。
2024-01-23 18:29:35 545 1
原创 n+nn+nnn+nnnn+nnnnn求和
就有5个2,4个20,3个200,2个2000,1个 20000,很多人有其他解法,我说说我这种,亮点在于用了pow函数。输入数字n,求和n+nn+nnn+nnnn+nnnnn。
2024-01-22 22:10:59 453
原创 扫雷游戏详解
首先要理解棋盘的结构,设置11*11的目的是保证边缘的格子的周围一圈能显示雷的个数,方便待会代码编写。棋盘有两个,一个真正埋雷,一个当做游戏界面。
2024-01-21 01:05:57 522 1
原创 c语言if语句详解
用break可以跳出if else语句,if else 语句不能循环。else //不满足if的条件,就会执行else语句。else if 可以有无数句,else可以不要。输入两个数,判断两个数的大小。表示选择的常用语句,结构为。要进行多次判断,格式为。
2023-12-04 22:56:30 364
原创 计算1/1+1/2+1/3+1/4+1/5 …… + 1/99 + 1/100 的值,打印出结果
分数求和结果应该以小数输出,所以定义s为double 类型,double类型的占位符为%lf。只要分子写为1.0(小数形式即可),则1.0/n的结果为小数。s+=1.0/i意思为s=s+1.0/i。for循环实现了分母从1到100的递增。下面,我来解析一下代码。s用来存放分数的和。
2023-11-27 19:34:43 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人