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

1.本章学习总结

1.1学习内容总结

  • 在访问内存方面,指针和数组几乎是相同的,当然也有区别,这些区别是微妙且重要的:指针是以地址作为值的变量,而数组名的值是一个特殊的固定地址。在循环中,指针变量的初值是数组的基地址。
  • 字符串常量实质上是一个指向该字符串首字符的指针常量。如果定义一个字符指针接受字符串常量的值,该指针就指向字符串的首字符。这样,字符数组和字符指针都可以用来处理字符串。
    C博客作业05--2019-指针_第1张图片
    大概就是这么用的。
  • 二级指针类似二维数组。例如int ((a+i)+j)等价于int a[i][j];
    行指针:例如int **a与那么a[0]表示第一行的所有元素,行指针经常用于字符串。
  • 指针数组是一个普通的数组,数组中的每个元素都是指针
    指针数组的定义为:type *pArray[n]
    指向指针的指针,可以定义指针来保存指针变量的地址值。
  • 返回指针的函数一般都返回全局数据对象或主调函数中数据对象的地址,不能返回在函数内部定义的局部数据对象的地址。

    1.2 本章学习体会

  • 最开始看到指针真的很懵逼,后来看例题就慢慢的懂了,至于剩下可能不解的地方只能根据刷PTA去找出来。
  • 代码量是156。

    2.PTA实验作业

    2.1 6-4 求出数组中最大数和次最大数

    2.1.1伪代码

    做这道题的时候我还不太理解指针,所以我当时还是用数组的思路去做,把指针的值赋给指针
    定义一个数组b,然后把指针a的值一一传给数组b,然后再用老套路选择交换法求出最大值和次大值,再和数组a中的值交换。

    2.1.2代码截图

    C博客作业05--2019-指针_第2张图片
    C博客作业05--2019-指针_第3张图片

    2.1.3总结本题的知识点

    选择交换法,指针和数组的转换。

    2.1.4 PTA提交列表及说明


    最开始错误是因为直接输出数组b的数,但是因为交换过后数组b中数的顺序都改变了,所以后来就从数组b中抽出数直接放到数组a中。

    2.2 6-8 计算最长的字符串长度

    2.2.1伪代码

    调用函数strlen计算字符串的长度,定义最长字符串长度max,定义字符串长度len。通过两两对比,循环求出max的值。

    2.2.2代码截图

    C博客作业05--2019-指针_第4张图片

    2.2.3总结本题知识点

    strlen函数的使用,求最大值。

    2.2.4PTA提交列表及说明


    上机的时候不会是因为不知道strlen函数,知道后就会做了。

    2.3 jmu-c-二分查找

    2.3.1伪代码

    定义left和right,根据二分查找,逐渐缩小查找范围。定义指针count,因为函数中不仅返回一个值,此时可以借用指针。

    2.3.2代码截图

    C博客作业05--2019-指针_第5张图片

    2.3.3总结本题知识点

    二分查找法,指针在函数中的引用。

    2.3.4PTA提交列表及说明


    最开始错误是因为指针使用错误了,这里*count要加括号。

    3.阅读代码

    C博客作业05--2019-指针_第6张图片
    这道题我不知道它在干什么,但是知道它是使用数组来进行一些数据的变换。代码看上去简洁而且行数也少,但是功能确很强大,强!

你可能感兴趣的:(C博客作业05--2019-指针)