指针

一、PTA实验作业

题目一:使用函数实现字符串部分复制

1. 本题PTA提交列表

2. 设计思路

本题要求使用函数实现字符串部分复制,让指针和函数结合,主函数中输入m,在子函数中定义i 和 j,用while 循环,当原字符串的最后一个字符等于'\0' 时结束循环。

循环中,用i,j把原字符串赋给新字符串。循环结束后给新字符串加个结束符。

3.本题调试过程碰到问题及PTA提交列表情况说明

 错误一:没有弄清楚题目的意思和思路,while循环的条件错误,i和m 的关系不是判断大小,而是要让下标 i 从m-1开始;还要再多定义一个变量j 来实现两个字符串之间的转换。

错误二:没有用while 循环,导致不能实现原字符串结束时跳出功能,应再加一个循环。

 

 

题目二:在数组中查找指定元素

1. 本题PTA提交列表 

 

 2. 设计思路

本题要求用函数,数组,指针结合完成元素查找,思路较为简单,在主函数中实现输入输出,子函数中查找。建立一个for循环,如果找到,flag=1,跳出循环,输出下标;找不到则返回-1。

3.本题调试过程碰到问题及PTA提交列表情况说明

错误一:把它当成排序法来写,原本只要找出最小下标即可,不需要按顺序全部输出。

错误二:没有按规定定义形参类型为整型指针,并且最后输出时,没写成题目规定的格式。

 

 

题目三:使用函数的选择法排序

1. 本题PTA提交列表

 2. 设计思路

本题用函数加选择排序法,循环输入a[ j ],调用sort 函数,子函数中用选择排序法,判断a[i]和a[j]的大小,如果a[j]<a[i],就交换位置,然后再顺序输出。

3.本题调试过程碰到问题及PTA提交列表情况说明

错误一:子函数中for循环少了一个大括号,导致编译错误,运行不出来。

错误二:直接就输出a[i],输出时应分情况,因为最后一个元素末尾要求不能有空格。

 错误三:最后printf 的时候,k=n-1,%d应加一个\n才符合格式。

 

 

二、同学代码结对互评

本题是数组中查找指定元素,左边是彦婵的代码,她跟我都用函数指针,不同的是她有返回值,我没有返回值,是直接再定义一个flag 区判断是否找到元素,她是用返回值去判断,总体差别不大。

三、本周题目集的PTA最后排名

四、我的学习总结

我学会了什么

1.指针变量是存放变量的首地址,利用指针变量可以表示各种数据结构, 能很方便地使用数组和字符。

2.指针变量的类型:指向的内存中存放的数据的类型

3.用变量的地址给指针变量赋值(&)

4.变量的类型与指针变量的类型相同

5.指针数组:就是一个由指针组成的数组,那个数组的各个元素都是指针,指向某个内存地址。

6.指针变量的定义

定义指针变量的一般形式为:类型名 *指针变量名。如:int *p   float *fp   double *p

7.数组和指针的联系:a[]等价于*a。

8.用指针实现内存动态分配:malloc calloc free realloc

动态存储分配函数malloc():

申请成功 返回指向所分配存储空间的起始地址的指针,不成功则返回NULL。在malloc()使用中,可将返回值强制转换成特定的指针类型,还可利用sizeof计算存储块大小。

2.我还有什么不会?

动态内存分配函数还不太会用,指针之间的传值也还不是很清晰,一般情况下不喜欢用指针解题,大部分用数组;

指针较不好理解,*p和p 的联系和区别了解得还不够清楚,需加强练习。

 

posted @ 2018-01-19 23:46  linzhiyi  阅读(175)  评论(0编辑  收藏  举报