自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 静态的通讯录

for(i=pos;④若pos为-1那就是没找到指定联系人,那么代表指定删除的人不存在,那么return返回,return相当于直接退出函数,返回到你调用函数的位置,其实和if else效果一样。Ⅲ.在Contact.c中实现查找指定联系人的函数(和删除函数的逻辑很像,无非就是把删除的那一步改成了打印指定联系人的信息)Ⅲ.在Contact.c中实现修改指定联系人的函数(和删除函数的逻辑很像,无非就是把删除的那一步改成了增加联系人的信息)Ⅰ.在主函数中将通讯录con的地址传参过去给删除指定联系人的函数。

2025-04-29 21:00:22 431

原创 自定义类型——联合体(共用体)

Un1中 char c有5个字节的大小,int i有4个字节的大小,联合体共用一块空间的话难道Un1的大小就是5吗,不是的,因为char的对齐数为1,int的对齐数为4,这个联合体的最大对齐数为4,联合体的大小要是最大对齐数的整数倍,所以是8,浪费了3个字节的空间。Un2中short c有14个字节的大小,int i有4个字节的大小,联合体的大小为最大对齐数4的整数倍,又得满足放下最大成员c的14个字节,所以联合体大小是16。当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候,就要对⻬到最⼤对⻬数的整数倍。

2025-04-27 14:24:44 231

原创 结构体实现位段

虽然此时我们不知道_d的这30个bit位是不是有15个放在剩下的15个中再放新开辟的还是全部放新开辟的32个bit位中,但是我们明确知道开辟struct A用了2个字节。char先开辟1个字节,也就是8个bit位,先放a的3个bit位,剩下5个,够放b的4个bit位,还剩1个不够放c的5个bit位,所以要新开辟1个字节,也就是8个bit位,放了c的5个bit位,还剩3个bit位不够放d的4个bit位,再开辟1个字节也就是8个bit位,够放d的4个bit位,所以开辟S用了3个字节也就是24个bit位。

2025-04-26 19:16:12 309

原创 计算结构体大小

由基础4.(如果嵌套了结构体的情况,嵌套的结构体成员对⻬到⾃⼰的成员中最⼤对⻬数的整数倍处,结构体的整体⼤⼩就是所有最⼤对⻬数(含嵌套结构体中成员的对⻬数)的整数倍。3.最终占了0——8共9个字节,这是最终结构体的总大小吗,三个成员变量的最大对齐数=max{1,4,1}=4,而结构体大小是这个数的整数倍,所以是12。对⻬数 = 编译器默认的⼀个对⻬数与该成员变量⼤⼩的较⼩值=min{8,4}=4,所以i从偏移量4开始往后放4个字节,那么偏移量1——3就空出来了。⽽对⻬的内存访问仅需要⼀次访问。

2025-04-25 16:20:53 424

原创 指针深刻理解

得到c+1之后➖➖了,是内容c+1➖➖修改成了c,,也就是数组c中第一个元素的地址,再一次解引用找到数组c中第一个元素的内容,也就是E的地址,E的地址+3指向E,最后%s打印是ER。cpp【-1】【-1】+1:cpp【-1】【-1】🟰*(*(cpp-1)-1)上一次的cpp不改变,cpp-1指向数组cp中第2个元素的地址,第一次解引用得到内容c+2,-1得到c+1,即存放数组c中第2个元素的地址,再解引用得到N的地址,N的地址+1指向E,最后%s打印的是EW。

2025-04-24 22:43:01 223

原创 字符串函数之strcpy、strcat

2.功能:字符串追加,把 source 指向的源字符串中的所有字符都追加到 destination 指向的空间 中。3.参数: destination :指针,指向⽬的地空间 source :指针,指向源头数据。3.参数: destination :指针,指向⽬的地空间 source :指针,指向源头数据。2.功能:字符串拷⻉,拷⻉到源头字符串中的 \0 为⽌。⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。会将源字符串中的 '\0' 拷⻉到⽬标空间。⽬标空间必须⾜够⼤,以确保能存放源字符串。

2025-04-22 15:45:40 213

原创 指针深刻理解

x, ptr2:int类型的指针,解引用访问一个整型,从01后面的00向后访问4个字节的内容:00 00 00 02,因为小端存储,取出来是02 00 00 00,十六进制打印不会打印首位的0,即打印2000000。%p, p+0x1:p+十六进制的1,十进制的20转为十六进制是14,即0x100000+(0×1×sizeof(struct Test)=0x100000+14=0x100014。指针加减才要根据指针类型判断加几个字节。对于数组来说是不完全初始化,数组a={1,3,5,0,0,0}

2025-04-21 22:06:30 1471 1

原创 关机小游戏

if (strcmp(arr, "我是猪") == 0)//如果两个字符串相等,则system函数会返回0,0==0为真,执行if,关机被取消,跳出循环。printf("请输入:我是猪,否则你的电脑将会在60s后关机\n");printf("请输入:我是猪,否则你的电脑将会在60s后关机\n");②system:是用来执行命令的函数,需要包含头文件stdilb.h。if (strcmp(arr, "我是猪") == 0)printf("关机被取消\n");printf("关机被取消\n");

2025-04-19 22:57:41 221

原创 猜数字小游戏——理解rand、srand、time函数

②程序中在调⽤ rand 函数之前先调⽤ srand 函数,通过 srand 函数的参数seed来设置rand函数⽣成随机数的时候的种⼦,种子决定了随机数生成器的初始状态,因此相同的种子会产生相同的随机数序列。system("shutdown -s -t 60") 是一条在 Windows 系统中通过 C/C++ 的 ①system() 函数调用的命令,用于安排系统在 60 秒后关机。srand函数是不需要频繁调⽤的,⼀次运⾏的程序中调⽤⼀次就够了。printf("输错了,请重新输入数字\n");

2025-04-19 22:36:47 1359

原创 基于数组、指针的sizeof和strlen

p是个指针变量,是4个字节,取出p的地址再+1,表示p的地址的第4个字节后面的地址向后数到'\0'之间的字符个数,后面的'\0'在哪也不清楚,是随机值 ,而我们不知道这4个字节中有无'\0'所以不能判断这个随机值和上一个随机值的联系。跳过整个数组,指向'\0'后面的元素的地址,从这开始往后数字符个数直到'\0'结束,由基础知识——②,因为不知道后面的'\0'在哪里,所以'\0'之前出现的字符的个数是随机值。&p[0]是a的地址,+1是指向b的地址,所以是从b的地址向后数直到'\0'之间的字符个数,为5。

2025-04-16 19:30:22 1502

原创 找出100——200之间的素数,并打印到屏幕上

flag=1时假设i为素数,内部for循环判断不为素数则flag=0是非素数,跳出循环。当flag=1时为素数,打印这个数。Ⅱ.遍历完2——i-1的数,因为是素数所以不能被整除,而下一个j>i-1,所以跳出循环。一个数的两个因子其中一个大于等于这个数开平方的话,另一个数一定小于等于这个数开平方。这样会只判断能不能被2整除而没有遍历完2——i-1之间的所有数就打印数字。3.判断这区间内的所有数如果可以整除i则不是素数,否则是素数。Ⅰ.还没遍历完2——i-1的数,就跳出循环了,说明i不是素数。

2025-04-15 14:40:15 264 2

空空如也

空空如也

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

TA关注的人

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