指针
题目一、6-9 计算最长的字符串长度
通过数组的指针来进行数组内容的操作,函数中运用strlen函数统计字符长度
并用for循环来求和,最后返回总和。
第一次调试时错把sum=0写在循环内,答案部分正确;
第二次将sum=0写在循环外,答案正确;
题目二、6-2 移动字母
利用指针操作数组,子函数中先用一个数组存下需要交换的字符串;
在运用循环和strcat函数将字符串交换;
调试时应该注意在操作完数组后赋值'\0',
不然会出现乱码;
题目三、7-3 使用函数的选择法排序
本题要将一串数字排序,本题通过子函数实现排序,
运用指针传递数据,运用冒泡法排序用到了两层循环。
调试时第一次出现格式错误是由于输出是少打了一个'\n',
和格式要求的不符。
本周pta排名
同学互评
黄世坤同学的6—8
我的6-8
同学的代码用到了多个if,运用指针知识较少,
而我的代码用到了指针的定义,运用了字符数组的将星期全部存储,
简单来说同学的比较容易理解,而我的比较简单,我更喜欢自己的思路。
本周学习总结
1.指针变量的定义,与普通变量定义的不同之处在于变量名字前加*,
指针变量的类型是它所指向的变量类型。
2.指针与地址间的关系
指针是以地址作为值的变量
两个相同类型的指针相减,表示它们之间相隔的数组元素数目,
指针的算数运算只包括两个相同类型的指针相减以及指针加上或减去一个整数,其他操作均为非法。
对指针加1即对该指针增加一个储存单元,即加上它所指向的对象字节大小。
3.用指针实现动态内存分配
malloc()利用sizeof计算存储块大小。malloc()返回值为(void *)类型,需要强制转化。
calloc()会对所分配的内存初始化,ralloc()更改之前的存储分配free()释放分配得到的内存