- 博客(24)
- 收藏
- 关注
原创 动态内存分配自用总结
观察它的返回类型,void*型,即无类型的指针,要使用并接收这个函数,我们需要一块儿内存的名字,即任意类型的指针,并对通过malloc得到void*指针强制转换为你所需的类型。realloc可以用于开辟新大小的空间,也可用于对原有的空间进行调节,返回值为调整之后的内存起始位置。考虑到内存开辟或扩容存在失败的情况(失败的话,指针赋值NULL,原有的数值会丢失),要留意以下的写法。在b.步骤中,这是内存扩容成功的情况,若是失败,则malloc返回NULL,即pa还是NULL。函数名 整数。
2025-05-06 16:02:11
753
原创 指针基础知识自用总结(4)
首先,我们的函数也会被存储到字节中,那么我们就可以使用指针来记录这个字节的编号,通过解引用指针来找到这个函数,既然这个指针内是函数的地址,那么指针的类型也是函数类型。qsort函数需要stdlib的头文件,这个函数用于数组中元素(数值,字符,字符串都可以)的排序。形参按顺序需要 数组名,数组总元素数,数组元素所占字节数,一个用于比较的函数的指针。同数组指针类似,你的函数指针要包含所知指向函数的特点,比如返回类型,形参.上一节,我们复习了数组指针,一维数组和二维数组的传参,及其使用。
2025-02-02 18:50:56
332
原创 指针基础知识自用总结(3)
既然一维数组传参传的是首元素地址,那么二维数组也一样,区别在于二维数组的元素是一维数组,传参当然也传数组的地址,即数组指针。那么我们总结一下,当数组名完全单独出现在sizeof的括号内时,sizeof得出的是整个数组的所占字节数。在写函数时,我的参数是int *arr,是一个整形指针变量,而传参时,我写的是arr,这个数组名.对数组名的理解,基础阶段我们只搞定一维数组和二维数组,而两者难度不在一个层面上,我们分开说.二维数组传参时,可以直接传数组指针,也可以传二维数组,实质作用相同.
2025-02-01 19:25:52
361
原创 指针基础知识自用总结(2)
总结下来就是,const更靠近指针所指向内容的数据类型时,锁死指针所指向的内容,使其无法通过指针修改;观察这个代码,当i大于等于0小于等于9时,一切安好,而当i为10时,通过指针访问到的内容不属于数组中的元素,万一这个内容是系统内容呢,你这一用,电脑不就蓝屏了吗?如图所示,const在*右边的情况 我们无法改变p所指向的内容,通俗一点就是p只认定一个变量的地址,改就报错。我们在上一节总结了何为指针,指针的不同类型,&和*以及指针的加减运算,指针的传址调用。
2025-01-31 22:09:43
394
原创 指针基础知识自用总结(1)
我有一种特殊的见解,int *的指针解引用时访问4个字节,以此类推double *那就是8个字节,char *时一个.那么说,指针解引用的字节访问数量和他指向的数据类型是一一对应的.从指针的创造者角度来想,这十分有九分的可能是故意设置成这样的,即连续存放的同类型数据可通过一个数据的地址访问其他数据,增加便利性。int,double,char的数组指针型 int (*arr)[10] char (*arr)[10]讲了何为指针,指针的不同类型,以及他们的异同,那么问题来了,指针咋用?
2025-01-30 21:08:01
956
原创 字符串旋转pta
写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1。给定s1=abcd和s2=ACBD,返回0.AABCD左旋两个字符得到BCDAA。AABCD左旋一个字符得到ABCDA。AABCD右旋一个字符得到DAABC。
2025-01-21 17:17:34
174
原创 给出一批-9到9的数,求出现次数最多的数
打印这个数和这个数的数量,数字间以空格分隔。题目保证这样的数字是唯一的。求这批数出现次数最多的数。给出这批数数量的变量n。
2024-12-28 21:51:12
146
原创 使用函数删除字符串中的字符pta
scanf输入一整型变量再换行,会残留\n,需要用getchar消耗这一\n。但是两个字符数组连续输入不会有这种情况,用gets()输入。
2024-12-16 21:39:41
257
原创 pta字符转换
int brr[i];int k = 0;//i--除去'\n';brr[i]用于储存整数。//字符型数字转为整型数字。int q = 1;int j = 0;j--)//从最后一个作个位,往后依此类推。if(arr[i] == '\n')//输入字符,有换行打破循环。
2024-12-03 22:41:15
186
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人