- 博客(10)
- 收藏
- 关注
原创 关于字符串的理解
今天在刷题时,在调试的过程中发现了一个问题:student是个包含char ID[9],int De,int Cai的结构体,现在要对成绩及格的学生进行排名,用scanf输入所有学生的数据后,我想要把成绩不及格的学生学号改为'0'以此来标记不参与排名,但是却没有达到预期效果。原程序是这样写的:调试结果:可以看出,实际效果并没有把学号整体修改为'0',而只是把学号的首位修改为‘0’.
2025-08-08 11:36:28
305
原创 关于运算符左结合性的理解
3<5<4,由于左结合性,实际上是(3<5)<4,3<5的逻辑值为1,则变成了1<4,为真,但实际上整个式子的逻辑值为假。
2025-07-30 16:35:15
112
原创 关于char和int类型相互转换的理解
const char *format, ...的格式和printf的格式一样。const表示该指针指向的内容(即字符串)在函数内部不能被修改。此时int 123就被转化为char 123存储再str中了。此时char "123"就被转化为int 123了;一.char转化为int。二.int转化为char。2.通过数学运算来实现。
2025-07-28 11:02:46
326
原创 关于快慢指针的理解
如果此时跑道是环形的,那么兔子一定会在某一时刻追上乌龟,换而言之,它们一定会再次相遇。快慢二指针同时从表头head出发进行链表的遍历,如果快指针直接到达了终点NULL,说明此链表无环结构;如果快指针和慢指针相遇,说明快指针追上了慢指针,即此链表有环结构。现在我们把这个场景抽离出来:乌龟就是慢指针,兔子就是快指针,跑道就是链表,起点就是表头节点head,终点就是NULL。顾名思义,快慢指针分为两个指针,一个是快的指针,一个是慢的指针。快慢指针主要用于判断链表中是否有环的存在。
2025-01-23 11:33:51
295
原创 关于scanf的理解
为了避免这种情况,我们采用程序2的写法,在scanf格式字符串中,空格会告诉scanf跳过所有的空白字符(包括空格、制表符和换行符),直到遇到下一个非空白字符。这时&ch取到的是第一个字符A,同时回车符也存在了缓冲区里,下一次调用程序2时,scanf会自动跳过空白字符(这里是回车字符),读取下一个用户输入的非空白字符。这时&ch取到的是第一个字符A,但是回车符也存在了缓冲区里,下一次再调用程序1时,不管用户输入什么,scanf读取到的都是回车符。
2025-01-16 15:48:52
332
原创 关于结构体的理解
语法:struct 结构体类型名类型1 成员1;类型2 成员2;......类型n 成员n;struct是定义结构体类型的关键字,当定义完成后,是“struct 结构体类型名”代表一种新的数据类型,而非“结构体类型名”代表新的数据类型。例:定义名为 Student 的结构体之后,结构体的名字变为struct Student 而非 Student。typedef是为一个已存在的数据类型定义别名的关键字。定义形式如下:typedef 原类型名 新类型名;
2024-10-10 17:36:42
295
原创 关于指针的理解
*p,相当于&(*p),p是地址,*p得到p地址对应空间的值,&*p又取回了值的地址,故&*p还是等于p。*和&的优先级相同,需要按照自右向左的方向结合。是解地址,就是得到该地址对应空间中存放的内容;的操作数是变量(包括普通变量和指针变量)。是取地址,就是得到该变量的地址;,因为指针变量的值是地址值,所以。说明这是一个整型的指针变量。注:指针变量的值是地址值。
2024-10-10 16:59:50
165
原创 关于malloc和realloc的理解
而malloc其实就相当于一个可以把数组长度写为变量的函数。数组在使用之前一定是要写明数组长度的,长度不能是变量。malloc可以理解为一个动态数组。
2024-10-10 16:09:52
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅