- 博客(30)
- 收藏
- 关注
原创 动态内存管理||malloc和free.realloc和calloc
像这种内存申请方式,一旦申请好空间,大小就无法调整比如我只用26,浪费了16个字节---》能不能让程序员自己来动态的申请空间!c/c++能c语言就涉及到4个函数mallocfreecallocrealloc。
2025-11-29 19:16:09
858
原创 结构体2+枚举联合体||结构体内存对齐,位段
不应该是6吗;所以结构体到底在内存中如何存放%zd打印无符号整形,sizeof 返回的是size_t的类型的值计算结构体的大小需要知道结构体内存对齐规则假设内存存在画横线的位置。后面相对横线的偏移量分别为0,1,2,3,4,5,即第一个字节相对起始位置的偏移量0,第二个字节相对1。
2025-11-26 14:51:22
737
原创 自定义类型:结构体
结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。前⾯我们在学习操作符的时候,已经学习了结构体的知识,这⾥稍微复习⼀下。这样会报错,编译器会将上述两种声明当做完全不同的两个类型,所以是非法的。struct 匿名结构体类型把名字去掉,变量直接在}后创建:“s”;匿名结构体类型如果没对结构体进行重命名的话,基本只能使用一次。可以这样,存整形和下个节点的地址,最后一个存空指针。同事匿名的结构体类型是不能完成结构体的自引用的。匿名结构体类型只能用一次;数据结构有多种,有的线性,树桩,图。
2025-11-16 18:39:51
304
原创 作业11-10
a (200)和 b (100)是 unsigned char 类型,但在表达式运算中会发生整数提升(提升为 int 类型),因此 a + b = 200 + 100 = 300 (以 int 类型存储),第一个 %d 输出 300。当 300 赋值给 unsigned char 时,会发生无符号溢出截断(溢出后对 256 取模): 300 % 256 = 44 ,因此 c 的值为 44 ,第二个 %d 输出 44。unsigned 能存的数0---255。但库函数的视线不是这样的。
2025-11-11 02:01:59
122
原创 数据在内存中的存储
正整数的原码,反码,补码相同负的各不相同原码:直接将数翻译成二进制反码:原码的符号位不变,其他依次取反补码:反码+1对于整数来说,数据存放内存其实存放的是二进制的补码因为在计算机系统中,使用补码可以将符号位和数值域统一处理同时加法和减法也可以统一处理(cpu只有加法器)在调试窗口中观察内存,为了方便展示,显示的是16进制的值存储的顺序是倒过来的。
2025-11-10 18:13:41
946
原创 C语言内存操作函数
对于strcpy,只针对字符窜的拷贝memcpy针对内存块的考遇到\0不会停下来注意:mun指的是字节个数,如int a[]={1,2,23,3,3,33,3,33};要打印前5个,要传过去20个字节包含头文件《string,h》arr2和arr1不能有内存上的重叠,一旦有重叠的拷贝,其结果是未定义的。
2025-11-09 02:38:38
397
原创 字符串函数和内存函数||12.strtok函数的使用13strerror函数的使用14perror函数
str不为空指针,函数找到str中的第一个标记,strtok函数将保存他在字符串中的位置。因为改函数会找到str中的分隔符并将他改编成‘\0’并返回其起始位置的地址,他会从\0的位置往回走,将第二个标记改成\0,记录地址,返回n的地址。参数指向一个字符串,定义了用作分隔符的字符集合,不讲顺序,全就行。即找到@,返还a的地址,将@改成\0,保存该成的\0的地址。将字符串中分隔符分隔出来的字符窜提取出来。可以用strcpy弄一个临时拷贝;str不用const修饰。str指定一个字符窜。
2025-11-08 01:37:37
127
原创 字符串函数和内存函数||6.strcmp的使用和模拟实现7.strncpy函数的使用8,Strncat的使用9.strncmp
对于strcat模拟实现可以链接arr1,arr2但对于连接arr1,arr16.strcmp的使用和模拟实现7.strncpy函数的使用8,Strncat的使用9.strncmp
2025-11-07 00:55:17
515
原创 字符函数和字符串函数||1.字符分类函数2.字符转换函数3.strlen,strcpy,strcat的使用和模拟实现
头文件<ctype.h>1.islower:判断字母是不是小写,大写值是0。
2025-11-06 13:40:36
376
原创 指针结尾||指针题目详解
aa是第一行的地址,aa+1是第二行的地址,*(aa+1)==aa[1]是第二行的数组名,数组名表示第二行数组首元素的地址,即aa[1]也是&aa[1][0],即6的地址,但其已经是int*,强制类似转换没意义。+1 1111 1111 1111 1111 1111 1111 1111 1100------补码,内存存的是-4的补码。&p[4][2]和&a[4][2]之间是4个整形,因为是小弟治减去大地址,故%d打印的是-4;sizeof(arr[1])---计算的是第二行的大小。
2025-11-05 13:01:52
680
原创 深入理解指针6.2||数组和指针笔试题解析
1.数组名a;a--数组名a--首元素的地址,int* ____1好&a-数组的地址,int(*)[4]————2好1好和2号的地址值是一样的,只是类型不一样,类型的差异决定了+1是跳过几个字节a+1 跳过4个字节&a+1跳过一个数组。
2025-11-03 22:05:19
159
原创 深入理解指针6.1||sizeof和strlen的对比
sizeof计算变量所占内存空间的大小,单位是字节,如果操作数是类型的话,计算的是使用该类型创建的变量所占内存的大小sizeof a;a如果是变量可以省略(),侧面证明其不是函数sizeof 里面有表达式是不参与计算的int main()int a = 8;b=a+2;//一号//二号结果为2和4sizeof中的a+2不会参与计算因为:C语言是编译性语言test.c-->编译---》链接---》test.exe-->运行一号是在运行时进行计算。
2025-11-02 18:12:54
182
原创 深入理解指针5
void *的指针是无具体类型的指针,这类指针不能直接进行解引用,也不能进行+-整数运算;const void* e1,const void* e2 放得是比较的两个元素地址。strcmp比较是按对应字符的ascll码大小。返回的也是和qsort一样1,0,-1;第一个a 相等 比较第二个 v>b。然而qsort能拍任意类型的数据。当e1>e2 返回>0;1.结构体变量.结构体成员名。s1,s2,s都是结构体变量。指向的是两个元素的比较函数。使用qsort排序整形数组。2,结构体指针->成员名。
2025-11-02 16:08:38
257
原创 函数指针数组的应用方式——转移表:实现计算器
printf("选择错误,重新选择\n");printf("请输入两个操作数:");printf("请输入两个操作数:");printf("请输入两个操作数:");printf("请输入两个操作数:");printf("退出计算器\n");2.但是这个函数又能实现不同的功能。1.想把重复的代码实现成函数。发现只有函数调用时不一样。
2025-10-29 13:40:59
231
原创 深入理解指针3|| 字符指针变量 || 数组指针变量 || 二维数组传参的本质 || 函数指针变量 || typedef类型重定义 ||函数指针数组
/err//parr_t就是int (*) [5];//err//pf_t就是int (*)(int)int main()parr_t pf1;u_int a1;return 0;
2025-10-28 01:07:53
623
原创 深入理解指针2||C语言
数组名是数组首元素的地址比如说int arr首元素的四个字节的第一个字节的地址,一个字节一个地址运行得出的值是40,为甚不是4呢,明明是首元素的地址,在32位环境下地址是4个字节。
2025-10-26 20:04:00
217
原创 深入理解指针1||C语言
一个内存单元1个字节一个字节8个比特位1byte=8bit给每个内存单元,可借此快速找到如何理解编址当控制总线的命令是read,cpu通过地址总线访问定位到内存单元的位置,然后通过数据总线将数据传到cpu,计算机的编zhi并非把每个字节的地址记录下来,而是通过硬件设计完成的32位机器有32根地址总线,每根地址线有两种电脉冲状态0或1,2根线就有4种含义,则32根就有2的32次方种,每种含义代表一个地址。
2025-10-25 01:39:11
823
原创 C语言指针基础1
所以,表达式中各种⻓度可能⼩于int⻓度的整型值,都必须先转换为int或unsigned int,然后才能送⼊CPU去执⾏运算.表达式的整型运算要在CPU的相应运算器件内执⾏,CPU内整型运算器(ALU)的操作数的字节⻓度⼀般就是int的字节⻓度,同时也是CPU的通⽤寄存器的⻓度。为了获得这个精度,表达式中的字符和短整型操作数在使⽤之前被转换为普通整型,这种转换称为整型提升。因此,即使两个char类型的相加,在CPU执⾏时实际上也要先转换为CPU内整型操作数的标准⻓度。在vs环境下先算括号2》3》4;
2025-10-21 01:00:27
559
原创 C语言||作业1||10-20
1. 数据结构为数组:需支持通过索引直接访问任意位置元素(随机访问),链表等结构因无法高效定位中间元素而不适用。2. 数据已排序:数组内元素必须按升序或降序排列,否则无法通过“与中间值比较”缩小查找范围。
2025-10-20 14:20:59
664
原创 零基础线性代数》》day1》》排列与逆序
由1.2.3.4……n组成的有序数组,中间不断不少数字 eg12345 ,561234有n!种n级排列。
2025-10-09 01:31:33
210
原创 音视频和语义标签
搜索石油,中国石油天然气集团公司是以油气业务、工程技术服务、石油工程建设、石油装备制造、金融服务、新能源开发等为主营业务的综合性国际能源公司能源公司.这段话哪来的?查看网页源代码,来认识meta这个标签meta标签用于提供有关页面的元信息,用于head这个部分1.<meta name="description" content="" />用于当前页面的描述信息2.<meta name="Keywords" content=""/>关键字。
2025-10-08 18:21:38
252
原创 超链接标签||day4
用于定位网站所在的位置,e.g. 123.0.0.1网站当前运行的电脑地址;80端口 HTTP协议默认访问的端口,通常省略。从一个网站指向另一个网站、相同网页上的不同位置、图片、电子邮件地址、文件甚至一个应用程序。网络上数据传输的标准,约定了数据发送和接受的方式,网站访问大多采用http或者https协议。2.span是行级元素,不独占一行,为部分文本设置样式属性。1.div是块级元素,独占一行,一般用于较大文本设置样式。超链接添加到图片上,点击图片可跳转。超链接是当前页面的内容,使用锚点。
2025-10-07 18:18:04
285
原创 表单标签||day3
网页的作用:显示和收集信息,承担信息的输入和输出功能本章的目的是写一个信息搜索提交页面form表单内的信息才会被提交到服务器模拟将数据提交到百度服务器点击登录后,信息会以明文的形式体现在地址栏上发送形式采用键值对的形式,即键(值的名字或编号)=或者:值(存放的数据)多个数据提交时采用&placeholder占位文字,光标聚焦输入文字时会消失value控件默认会填充的数值input类型有很多种radio单选按钮,每个选项name不同才会有互斥功能checkbox复选框,每个选项name相同表达多选概念加入ch
2025-10-05 19:40:13
263
原创 常用文本标签||web网页制作day1||使用软件hbuilder
p align="center" title="主题" alt="主题”>//鼠标滑过图片时显示主题,alt是图片未能正常加载是显示主题。5.<pre>标签:可以预定义格式化文本,保留文本内的空格和换行符格式,变为等宽字体,与左边有一定距离,可删。2.<h1>wenben</h1>标题变大变粗,默认换行,数字越大,效果越小。<img src="",width="40%">图片占网页画面宽度的40%<img src="",width="500px">固定500像素宽度。9.上角标superscript;
2025-10-03 19:04:15
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅