自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 .动态内存经典题分析(1)

而在这里,指针变量str传递的只是数值,并不是地址,若要改变str的值,则只能传递str的地址,因为不是传递地址的形式进行传参,这个参数会自己单独开辟一个空间进行调用函数内部的代码运行。因为字符串在打印的过程中,其实是将字符串的收个字符的地址传递给了printf进行打印,所以当str是一个指针,且这个指针的值是一个字符串,那么这个指针实际指向的是字符串的首字符。在普通变量的传参中,若使用指针则是将变量的地址传递给指针后,这个变量的内容会因为地址的传递,而在调用函数中的改变而发生改变。

2023-09-20 21:30:38 44

原创 盘点常见的动态内存的错误

不过编译器在过程中并没有报错。

2023-09-20 21:05:46 25

原创 realloc

realloc函数的出现让动态内存管理更加灵活。有时会我们发现过去申请的空间太⼩了,有时候我们⼜会觉得申请的空间过⼤了,那为了合理的时 候内存,我们⼀定会对内存的⼤⼩做灵活的调整。那realloc 函数就可以做到对动态开辟内存大小的调整。

2023-09-20 17:44:45 35 1

原创 calloc

calloc 函数也⽤来动态内存分配。

2023-09-20 16:34:03 23

原创 malloc与free

而就算是变长数组也只是说数组的大小可以使用变量来指定,而一旦数组创建好后,依然是不能调整大小malloc是用来申请内存的free是用来释放内存的。

2023-09-19 21:32:48 1342 1

原创 结构体的简单介绍(4)——位段

本文都是VS编译器中出现的位段现象!

2023-09-17 22:52:35 105

原创 如何使用记事本制作一个简陋的小网页(1)

html本质上是一种标签并不是一种语言,其最主要的功能就是对页面设置和页面的文本样式进行修改和修缮。

2023-09-16 16:27:59 288 1

原创 atoi函数

头文件: 使用atoi 我们得到的结果是 -12、12、-12、-12通过结果我们可以得知以下注意点:如果字符串从开头就有连续的空格字符,则跳过这些连续的空格字符,找到不是空格的字符。如果连续中断。

2023-09-16 14:40:39 69

原创 char的范围是一个循环的圆

2、char类型实际上分为signed char 和 unsigned char ,再一些编译器中(例如VS)signed char 其实等价于char ,下文的char 我们将默认为signed char。根据说明,我们得知char的范围是0~255,从结果进行判断,我们可以得知再char中 255+1=0。3、char 的范围是 0~255 unsigned char 的范围是 -128~127。所以,我们可以得出结论,char的范围是一个循环的圆。以上代码再VS编译器中进行运行,得到的结果是0。

2023-09-16 14:14:20 50

原创 strncpy

函数原型:返回值:dest字符串起始地址。

2023-09-16 13:56:41 69

原创 数据在内存中的存储(2)

那么使用科学计数法则是 1.011*2^2 和十进制一样,将小数点往前移动两位,但因为是二进制,由于满二进1的原则,所以这里乘的是2的二次方,这和10的2次方是一个道理。例如:123.45可以写为1.2345*10^2 将小数点朝前移动两位,并乘上10的2次方,使得整数只剩下一位。如上文所诉,我们可以得知了5.5的二进制运算法则,那么5.5这个浮点型数字的二进制这么表达呢?在科学计数法的基础上增加了一个符号位,也就是(-1)^ s。所以写法如下:(-1)^ 0 * 1.011 * 2 ^ 2。

2023-09-14 21:06:28 113 2

原创 JDK、eclipse软件的安装

变量名:JAVA_HOME变量值就是刚刚复制的路径 双击path 打印以下文字最后一直双击确定,安装环境完成。 选择好安装路径,点击 lanuch,安装完毕!

2023-09-13 19:32:23 340

原创 数据在内存中的存储——练习5

而且因为没有符号位,所以进制位可以肆无忌惮的+1,且在每次+1后进行了截断,而截断后的结果都不会超过。unsigned char的范围,也就是'255'

2023-09-13 15:10:36 37

原创 数据在内存中的存储——练习4

求出在遇见字符'0'之前的字符个数。\0在ASCII中的数值是0。

2023-09-13 14:49:31 66

原创 数据在内存中的存储——练习3

截断后因为需要打印成%u也就是打印成无符号整形,所以进行整形提升,因为截断后符号位是1,又因为是char类型,属于是有符号类型,所以看符号位进行补充,所以补1。以%u形式打印无符号进行打印,因为是无符号,所以没有原反补的概念,所以直接打印这一串得出结果。上图是3.1的答案,在分析3.1之前我们首先要明白一个东西, char的取值范围。以上是-128的原码、反码、补码,因为是char类型我们需要进行从右到左的截断。%u是无符号格式进行打印,或者说打印无符号整数。有符号的char类型的范围是-128到127。

2023-09-13 14:11:30 339

原创 数据在内存中的存储——练习2

char a=-1 与 signed char b =-1。且无符号的数字在整形提升时全部补0,所以用0来补充到32位。但是c是无符号类型,而%d打印的是有符号类型的。PS: 截断是指从右到左截断八个比特位。上图是-1的原码反码和补码。但因为打印的是有符号整数。

2023-09-13 13:48:55 41

原创 数据在内存中的存储——练习1

且a是地址,被转化后,地址变成了一个int的类型的地址。而在强制转化后的+1就是地址物理数据上面的+1。就相当于是加了一个字节的地址。

2023-09-13 13:31:02 35

原创 数据在内存中的存储(1)

而-5的原码是在5的原码基础上,将符号位从0改成1原码到补码是经过了取反变为反码,在反码的基础上+1得到补码。而补码转化为原码也是如此,进行反取后+1注意补码的取反不是反码。为什么呢?

2023-09-12 23:27:13 282

原创 strerror函数

函数声明: char * strerror ( int errnum );头 文 件:#include 返 回 值: 返回值为char * 类型。指向描述错误错误的错误字符串的指针。原理:在C语言的库函数中设计一些错误码,当我们库函数在调用的过程的中发生了各种错误,要记录下来,这时候记录的就是错误码。注意,当出现一连续的错误时,返回的只有第一个错误码。

2023-09-08 13:45:01 81 2

原创 结构体的简单介绍(3)——结构体的内存对齐

以上代码是寻求一个结构体在内存中所占的字节大小。按照平常的逻辑理论,这里的结构体大小理论上说,应该是六个字节,因为成员c1占一个字节,成员i占四个字节,成员c2占一个字节,所以加在一起一共是6个字节。但答案真是如此吗?结果算出的是12个字节。而后,我又将结构体的成员顺序进行调换,结果还会是12个字节吗?通过运算,我们得知,最后得到的是八个字节。是不是很奇怪,明明成员内容都是一样的,只不过调换了顺序,最后结构体的字节大小却发生了改变,这是为什么?其实这是和结构体的内存对齐有关!

2023-09-06 17:18:19 86 2

原创 结构体的简单介绍(2)

在声明结构的时候,可以不完全的声明。以上结构在声明的时候省略掉了结构体标签(tag)。那么会有什么影响呢?由于摘掉了标签,我们再main函数内进行变量赋值的时候,无从下手也无法成功赋值,所以得到结论,这种摘取标签的声明方式,只能使用一次,而这一次也只能是在声明的时候进行创建变量使用。当不看标签 ,我们可以发现两个结构体的成员一样,所以当我们进行以下操作时,是否成立呢?p = &x;

2023-09-05 15:41:44 103

原创 联合体(共用体)的简单介绍

联合也是一种特殊的自定义类型。这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。

2023-09-02 16:33:56 214 1

原创 枚举的简单介绍

枚举顾名思义就是⼀⼀列举。 把可能的取值⼀⼀列举。⽐如我们现实⽣活中:⼀周的星期⼀到星期⽇是有限的7天,可以⼀⼀列举性别有:男、⼥、保密,也可以⼀⼀列举⽉份有12个⽉,也可以⼀⼀列举三原⾊,也是可以一一列举这些数据的表⽰就可以使⽤枚举了。

2023-09-02 09:53:59 145 1

原创 结构体的简单介绍(1)

结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

2023-09-01 17:17:50 137 2

原创 memcmp 与 memset

比较内存区域ptr1和ptr2的前num个字节。与字符函数strcmp功能相似。

2023-09-01 10:09:46 76

原创 memcpy 与 memmove

memcpy函数是一个用于内存复制的函数,声明在 string.h 中(C++是 cstring)。作用是:以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。函数有三个参数,第一个是目标地址,第二个是源地址,第三个是数据长度。

2023-08-31 10:08:05 105

原创 strtok函数

char * strtok ( char * str, const char * sep);

2023-08-30 16:28:43 89

原创 VS的调试技巧

当我们发现程序中存在的问题的时候,那下⼀步就是找到问题,并修复问题。这个找问题的过程叫称为调试,英⽂叫debug(消灭bug)的意思。调试⼀个程序,⾸先是承认出现了问题,然后通过各种⼿段去定位问题的位置,可能是逐过程的调 试,也可能是隔离和屏蔽代码的⽅式,找到问题所的位置,然后确定错误产⽣的原因,再修复代码, 重新测试。

2023-08-29 20:16:12 1320 1

原创 strcat函数

被称为字符串的追加/链接函数,它的功能就是在一个字符串后面追加上另外一个字符串。

2023-08-27 16:56:34 81 1

原创 strcpy函数

是将一个字符串复制到另一块空间地址中 的函数,‘\0’是停止拷贝的终止条件,同时也会将 '\0' 也复制到目标空间。

2023-08-27 15:49:26 146 1

原创 strlen函数

计算的是字符串str的长度,从字符的首地址开始遍历,以 '\0' 为结束标志,然后将计算的长度返回,计算的长度并不包含'\0'。

2023-08-27 10:43:18 346 2

原创 strcmp 的使用和模拟

strcmp是比较大小的函数。从字符串开始进行比较,如果两个相同位置的字符相同,那么继续往下进行比较,直到遇见不同的位置。从本质上,比较的是相对位置字符的ASCII值。比较的标准:当str1大于str2时,返回值是大于0的数当str1小于str2时,返回值是小于0的数当str1和str2相同时,返回值是0。

2023-08-26 16:48:03 111 1

原创 strstr函数

如果str2是str1的一部分,函数的返回值是str1中第一次出现的str2字符串的字符串首字符地址,如果 str2 不是 str1 的一部分,则返回一个空指针。匹配过程不包括终止空字符,但它到此为止。

2023-08-26 16:11:20 246 1

原创 数组和指针练习解析(6)

cpp是三级指针,cpp内存储的是cp的首元素地址。

2023-08-25 19:31:44 140 1

原创 数组和指针的练习解析(5)

题目:int main()pa++;return 0;思路分析:pa++;

2023-08-25 10:19:28 57

原创 数组和指针的练习解析(4)

且aa+1 又可以转化为aa[1]表示数组名,表示的是第二行的数组名,那么可以表示第二行第一个元素的地址而*就表示第二行第一个元素,此处的int*强制类型转化是没有用的。aa相当于首元素地址,在二维数组中首元素地址就是第一行的地址,而aa+1表示的就是第二行地址。ptr2-1就是第二行第一个元素减一,就是第一行最后一个元素,所以表示的就是元素5。

2023-08-25 09:55:37 65 1

原创 数组和指针练习解析(3)

题目:int main()int(*p)[4];p = a;return 0;思路分析:int(*p)[4];p = a;

2023-08-24 16:36:37 60 1

原创 指针和数组练习解析(2)

题目:int main()int *p;p = a[0];return 0;思路分析:p = a[0];p[0]

2023-08-24 10:00:46 59 3

原创 数组和指针练习解析(1)

题目:int main()return 0;思路分析:*(a + 1)2结论:

2023-08-23 19:52:37 98 5

原创 %f占位符

通常情况下,当输入的数值或者打印的数值是float类型数据时,使用%f ,当然在精度更高的double数据类型下,也可以进行使用。结论:%.nf表示取小数点后面n位,当然若小数点后面的位数小于n则用0补齐。%f ,用来输出实数(包括单双精度),以小数形式输出。double类型数据默认情况下输出。float类型数据默认情况下输出7。

2023-08-22 19:57:19 218 1

空空如也

空空如也

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

TA关注的人

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