C博客作业05--2019-指针

1.本章学习总结(2分)

1.1 学习内容总结

整理指针这两章主要知识点,必须包含内容有:

指针与数组:

数组其实也是一种指针,不过指针比较抽象难懂,
指针指向内存地址,做变量使用,可间接访问所指地址中的内容。

字符指针:

字符指针可用来处理字符串,字符串常量是一个字符指针,指向字符串的起始位置。
区别:字符数组占用一块连续的单元,而字符指针只占用所指地址单元。
动态内存分配
malloc动态申请内存

二级指针、行指针

二级指针:
类型名** 变量名;
例:
int a = 10;
int* p = &a;
int** p = &p;
a、* p、** p代表同一个单元,它们的值相同
理论上,可以定义任意多级指针,但实际中很少超过二级,避免指针级数过多造成理解错误,使程序可读性降低。
行指针:int(p)[n]; p = a;
p + i表示第i行的首地址a[i],二级指针
a[i][j] = ((p + i) + j) = (
(p + i))[j] = p[i][j];

指针数组及其应用

int *p;
int i;
char *pch[6]={"1","2","3","4","5","6"};
for(i=0;i<6;i++)
printf("%s",pch[i]);

指针做函数返回值及其注意:

局部变量在指针返回时会消失。
1.2 本章学习体会
模模糊糊,基本应用会了,但是用到具体的题目中又不会用。
代码量马马虎虎500左右。

2.PTA实验作业(7分)

2.1 题目名1

2.1.1 伪代码

for(1-n)将指针变量逆序赋值给数组a
for(1-n)将数值赋值会给指针,由指针返回值(数组将被销毁,无法返回值)

2.1.2 代码截图

2.1.3 总结本题的知识点

函数中利用指针可返回值,而数组等在函数结束时会销毁,无法得到值。

2.1.4 PTA提交列表及说明

提交列表说明:

1.编译错误:指针在函数中运用是没有规范,出现编译错误,在vs中调试后正确。

2.2 题目名2

2.2.1 伪代码

while(low<high)如果mid等于key,返回值,否则不断缩小low,high范围得到答案。

2.2.2 代码截图

2.2.3 总结本题的知识点

2分查找,不断缩小范围,利用指针来传输数据以及返回值。

2.2.4 PTA提交列表及说明


编译错误:没定义好
答案错误:count的返回值没弄好
部分正确:count的返回值没弄好,就对了错误的测试点,后来发现用指针count返回值。
答案正确:。。。

2.3 题目名3

2.3.1 伪代码

for遍历数组找出最大值
交换位置
同样方法找出次大值交换位置

2.3.2 代码截图

2.3.3 总结本题的知识点

利用指针遍历来找最大值

2.3.4 PTA提交列表及说明


编译错误:第一次忘记定义i,第二次忘记函数返回值。
答案正确:。。。。。

3.阅读代码(-2--1分)


代码功能:输入一个字符串和一个子串,找到并删除字符串中的所有子串。
作者脑回路清奇,方法厉害,代码很简单就做出来了,一句卧槽足以看出作者之牛逼。

posted @ 2019-12-16 22:40  尤志锋  阅读(153)  评论(0编辑  收藏  举报