- 博客(18)
- 收藏
- 关注
原创 动态内存管理 (malloc,calloc,relloc)
我们已经掌握的内存开辟⽅式有://在栈空间上开辟四个字节//在栈空间上开辟10个字节的连续空间1 2但是上述的开辟空间的⽅式有两个特点:• 空间开辟⼤⼩是固定的。• 数组在申明的时候,必须指定数组的⻓度,数组空间⼀旦确定了⼤⼩不能调整但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道,那数组的编译时开辟空间的⽅式就不能满⾜了。C语⾔引⼊了动态内存开辟,让程序员⾃⼰可以申请和释放空间,就⽐较灵活了。
2024-07-12 00:15:16
1066
原创 ⾃定义类型:结构体,联合体和枚举详解
位段的声明和结构是类似的,有两个不同:1. 位段的成员必须是int 、 unsigned int 或 signed int ,在C99中位段成员的类型也可以 选择其他类型。2. 位段的成员名后边有⼀个冒号和⼀个数字。int _b:5;int _c:10;int _d:30;A就是⼀个位段类型。那位段A所占内存的⼤⼩是多少?
2024-07-08 20:05:39
1133
原创 ⾃定义类型:联合和枚举
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。
2024-07-08 18:11:59
334
原创 初阶指针基础知识详解
我们究竟该如何理解编址?⾸先,必须理解,计算机内是有很多的硬件单 元,⽽硬件单元是要互相协同⼯作的。所谓的协 同,⾄少相互之间要能够进⾏数据传递。但是硬件与硬件之间是互相独⽴的,那么如何通 信呢?答案很简单,⽤"线"连起来。⽽CPU和内存之间也是有⼤量的数据交互的,所 以,两者必须也⽤线连起来。不过,我们今天关⼼⼀组线,叫做地址总线。我们可以简单理解,32位机器有32根地址总线, 每根线只有两态,表⽰0,1【电脉冲有⽆】,那么 ⼀根线,就能表⽰2种含义,2根线就能表⽰4种含 义,依次类推。
2024-07-07 17:19:57
862
原创 解释传值调⽤和传址调⽤的不同
但是 x的地址是0x00cffcec,y的地址是0x00cffcf0,x和y确实接收到了a和b的值,不过x的地址和a的地址不 ⼀样,y的地址和b的地址不⼀样,相当于x和y是独⽴的空间,那么在Swap1函数内部交换x和y的值, ⾃然不会影响a和b,当Swap1函数调⽤结束后回到main函数,a和b的没法交换。所以Swap1是失败的了。在调⽤ Swap1函数时,将a和b传递给了Swap1函数,在Swap1函数内部创建了形参x和y接收a和b的值,a的地址是0x00cffdd0,b的地址是0x00cffdc4,
2024-07-06 21:58:04
235
原创 猜数字游戏详解版
还可以加上猜数字的次数限制,如果5次猜不出来,就算失败参考代码;printf("\n你还有%d次机会\n", count);printf("请猜数字>:");printf("猜⼩了\n");printf("猜⼤了\n");elseprintf("恭喜你,猜对了\n");break;count--;printf("你失败了,正确值是:%d\n", r);printf("请选择:>");
2024-07-06 06:00:00
564
原创 帅哥美女,来这.两个数最大公约数
EOF全称是End Of File(C语言标准函数库中表示文件结束符),通常在文本的最后表示资料结束。C语言中数据都是以字符的ASCII代码值来存放的。ASCII代码值得范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志,我们可以把EOF作为‘-1’理解。针对多组输入输出且数据没有固定数据量问题:采用while(scanf("%d",&n)!是一个防止是scanf报错的文件,在开头添加就可以防止报错,不信你试一试哈哈哈哈哈。如果要结束输入连续2到3个ctrl+z就可以退出。
2024-04-13 19:43:13
513
原创 利用c语言将1000年到1050年之间的闰年输出
0) || (year % 400 == 0))//重点。1.闰年是指能被4整除但不能被100整除的数。那么为了方便我们利用了||(逻辑或)和&&(逻辑非)c语言中0代表假,非0代表真,所以非0都用数字1表示。printf("%d是闰年\n", year);||是双目运算符,两边,只要一边为真就为真。&&也是双目运算符,两边必须都为真才为真。
2024-04-09 19:58:41
601
原创 输入10个数,并算出最大值将其输出
1.这里要用到数组的知识,利用for语句将10个整数输入到数组num[10]。其中continue语句是结束本次循环,进入下一次循环与break语句不同。break语句是直接结束循环,后续循环不在执行,直接下一个语句。//将10个数循环输入存入数组。//循环判断谁最大,再将最大的哪一个赋给max。//不满足就跳出本次循环,进入下一次循环。printf("数组可以循环输入,我们也可以反复理解");printf("最大值是%d\n", max);
2024-04-09 19:30:16
482
原创 已到了燃烧青春的时候——开篇
你们觉得应该怎么学编程?我觉得应该像火影忍者中迈特凯一样,燃烧青春去学习。我家里没有矿,我也不想上研究生,我今天所做的一切都为毕业做准备,没有理由逃避了,我必须好好学编程。我要坚持写博客,写git,提高自己的表达能力,自律性。认真学习专业课知识。我编程的终极目标就是找一份工作。每周花费的编程时间,不定,每天都要学习,坚持。我叫许文豪,大学生今年19岁,来自远方,你可以叫我鸡仔。坦白来说,我想挣大钱,这就是我加入计算机行业的目的。我最想进美团,因为这样就可以天天领优惠券团购了。
2024-03-30 12:50:34
96
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人