自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 C中位段的解释

这个例子中,struct NUM 有4个成员,正常来说这四个字节各占32位宽,但是我们指定占位,将其位宽分别指定为5,10,15,20。所以它整个结构体所占的字节空间也发生改变,并不是原来的16个字节,而是8个字节。我们来解析一下为什么。我是用vs2019运行的,我们用它监视,查看s的地址如果是5A 0C 0D,这就是在位宽不足下个数的情况下会浪费空余位宽,这个留给大家自己运行了。这里我们又会产生疑问,剩余2位宽,那么d会不会使用这剩余的2位宽呢?-位数:指定该成员的位数。-成员名:位段的名称。

2024-09-12 17:33:25 137

原创 位操作符详解

常用的位操作符有这几个:"&"(按位与),"|(按位或)","^(按位异或)","~(按位非)","(右移)"。按位异或操作符将两个数的二进制表示进行逐位比较,当两个相应位不同时,结果取1,反之取0,上例子(题外话 我们需了解的是 a^a=0,a^0=a,大家可以自己动手验证一下。按位或操作符将两个数的二进制表示进行逐位比较,只要两比较位中有一个为1,则结果取1,反之取0,上例子。按位与操作符将两个数的二进制表示进行逐位比较,两相同位为1是,结果取1,反之取0,直接上例子。

2024-08-02 18:31:12 673

原创 原码,反码和补码

反码应用于负数,而且我们要了解的是正数的反码和补码是相同的,而负数的反码是全部取反(即1变为0,0变为1),至于符号位变不变这取决与你的编辑器,大部分都是符号位不变的,有一部分会符号位取反。原码为最直观的二进制表示方式,他是将一个数值直接转换为二进制,而且我们要注意的是,在原码表示法中,左边第一位是表示符号的,并且0表示正数,1表示负数,其余就按二进制读取。补码是计算机最常用的表示方法,它的目的是简化运算,正数的补码和原码相同,而负数是原码取反+1(就是负数的反码+1).

2024-08-01 18:09:44 153

原创 C语言中动态内存管理

realloc 用于调整之前通过malloc,calloc或已经用过realloc分配的内存块的大小,若新的大小大于原始大小,realloc可能会分配一个新的内存块,若小于原始内存大小,realloc则会截断原始内存块。p为指向之前通过malloc,calloc或已经用过realloc分配的内存块的指针,若传入NULL,realloc和malloc类似,分配一个新的内存块。并且检查分配是否成功,检查其指针是否为NULL,以确保内存分配成功。函数返回一个指向分配的内存块的指针,若分配失败,返回NULL。

2024-07-31 18:35:21 134

原创 putchar和getcahr用法

1 putchar是一个用于输出单个字符的函数,而printf是格式化输出的函数,其输出的类型多余putchar。其中c为要输出的字符,其可以为int类型,也可以为char类型,为int 类型时我们可以以此判断是否输出成功。返回读取到的字符,但返回的是int类型所以返回的是字符的ASCII码,如果到达文件末尾或发生读取错误,返回。2 putchar只能接受一个字符参数,而printf可以接受多个参数,包括格式字符串和多个输出的值。是一个简单的函数,用于逐个字符地读取输入,而。用于更复杂的输入格式化。

2024-07-30 18:24:18 186

原创 二分法及递归和迭代

要实现二分查找我们得先确定查找的范围,其次在查找范围内,计算索引mid,同时可能会有人询问为什么是mid=left+(right-left)/2,而不是mid=(left+right)/2,这里我们需要了解的是当其定义的数很大的时候它有可能超出了int可定义的范围(我们可以试试INT_MAX这个代码求出int的最大值为2147483647),当left=INT_MAX-1的时候它们相加会溢出,导致乱码,所以我们用的是我们这个例子,防止溢出。基本情况:其终止的条件,阻止其无限递归。举相同的例子,但用迭代。

2024-07-29 18:34:44 340

原创 C语言中函数定义

这个例子它告诉编译器这里存在名为add的函数,其接受两个int类型的参数,而且会返回一个int类型的结果,结果为 a+b;同样我们需要知道的是我们在定义函数时,我们定义的函数类型是什么同样其表达式返回的就是什么类型。这里我们让其返回int类型,但是返回了float类型,这种不匹配会导致编译错误,我们应该注意。如果定义函数类型和函数返回值类型不匹配,可能会导致程序崩溃,数据损坏等结果。当然这个例子比较简单,等我们熟练后可以写更复杂的。这里我们只是举了一个如何定义的例子接下来我们实操。

2024-07-27 18:32:20 194

原创 C语言中循环概念及结构

C语言中的循环

2024-07-26 18:55:29 389

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除