你好, 欢迎回来｡
因为点算术是一个很难理解和掌握的概念,
我想通过最后一个例子来证明这个概念, 它做得很好｡
如果你理解了这个例子, 你就不会有点算术的问题了｡
我想给你们看的第一个例子是给指针加上一个整数值的效果｡
所以当我们用加法做指针运算时, 我们实际上可以看到它是如何根据地址来工作的｡
所以在这个程序里, 我所做的就是创建一个字符串, 一个字符数组,
它被称为字符串.
然后我创建了一个字符指针p｡
我将遍历整个长度的字符串, 这是一个倍数｡
所以我要遍历整个数组｡
只是名称基本为循环强度长度的倍数大小和倍数｡
然后输出数组中的每个字符串或字符｡
我所做的就是显示地址, 然后显示我添加到地址中的实际号码｡
让我们看一下它的输出, 因为它展示了一个很好的点运算的例子｡
让我们转到代码块并运行它｡
这里是代码块｡ 我稍微整理了一下代码｡
我使用了字符串长度, 设置了一个字符串长度, 因为它是额外包含｡
我只想运行这个｡
所以当我运行这个程序的时候, 你会注意到, 它向你展示了记忆是什么样子的,
它向你展示了做点运算的值｡
如果你说multiple[ 0], 记住, multiple只包含一个字符串.
但是如果我们看这个数组的内容,
0的倍数是a, 1的倍数是空格, 剩下的是字符串｡
这就是数组｡
紧接着这个就相当于给指针加0并解除它的引用, 加1并加2｡
它向你展示了如何通过解引用指针本身和给它加上数字来进行指针运算｡
所以指针加上7个取值得到g｡
然后在第三列中, 我将向您显示实际的地址,
随着我们的增量｡
所以数组中每个元素的地址, 在字符数组中用&号,
我们看到地址060feff, 元素0, 依此类推.
然后我们看看地址如果我们只加到指针本身而不去引用它, 你会看到地址是对齐的｡
然后我们可以看一下语法,
看看这里发生了什么, 我们实际显示的第一个东西是数组中的索引, 它只是一个计数器｡
然后我们显示一个百分比c, 它是数组中的字符｡
接下来我们要显示的是解除指针加I的引用｡
这里我们要做的就是显示I,
然后显示指针的解引用加上I, 实际值.
所以我们把d显示为实际的计数器, 然后点c是我们的取值｡
所以p是我们的指针｡
我们只是说p加I, 指针运算, 然后我们解引用它｡
然后要得到地址,
我们需要做的就是, 得到数组地址, 然后是,
"""的倍数, 然后是索引.
为了得到第一个指针的地址, 我们只需要p加I,
来得到实际的计数器, 它显示了我们是如何递增p的,
我们只需要p加百分之d｡
但是它很好地演示了我们指向的内存地址的各种显示方式, 以及它们如何等价于数组中的不同索引和实际指针｡
我觉得这个做得很好｡
我想再看一个例子, 它在使用长整型的指针运算方面做得很好｡
因为这里这些都是整数｡ 所以我们所要做的就是加一个,
然后自动上升到下一个字节, 依此类推｡ 让我们看看我们做什么, 我们做多头｡
所以在这个例子中, 我还想演示一下如何用一个长指针和一个长指针来做同样的事情｡
有了字符指针, 它就是一个字符串数组｡
但即使是长数组, 大小不同, 我们仍然可以使用指针遍历它们,
你可以看到字节数实际上是如何变化的｡
所以即使我们说我们有一个长指针, 我们把它加了1, 我们实际上是把它加了4个字节,
因为长指针有点大, 我们在这个例子中会看到｡
现在, 让我们在代码块中运行这个示例｡
这是我们的例子｡ 同样, 我们有一个整数计数器, 一个循环计数器｡
我们有一个长数组15l｡
我们通过加后缀来指定l, 然后我们指定它们的l,
它们的long, 我们有一个指向multiple的长指针｡
同样, 因为它是一个数组, 所以我们不需要使用运算符的地址｡
我们要经历整个漫长的过程｡ 这里我们不能使用搅拌长度,
我们必须使用大小, 我们实际上必须用它除以阵列中的每个点｡
总大小除以数组中的一个点, 这就是我们要跳出的时间, 因为这些点记住了我们的地址,
每个地址增加4个字节｡
我们在这里所做的就是显示指针和数组, 并显示它们之间的关系,
然后我们显示系统中长整型的实际总字节数｡
这再次演示了数组和指针之间的关系｡
如果我们运行这个程序, 我们会看到类似的输出｡
但这里的地址大小略有不同, 增加了4个字节｡ 所以我们要打印出地址和指针｡
所以对于地址和指针加0, 它等于数组sub 0,
也就是地址6356728｡
要解引用指针, 我们会得到值15｡
所以p加0仍然等于数组sub 0｡
然后我们再对p加1,
p加2和p加3做同样的操作, 所有的都等价于数组中索引的正确点｡
地址增加了4个字节, 但我们仍然可以将2和3相加, 我们可以看到值是相同的｡
然后它告诉我们这个长占用了4个字节, 这就是地址增加了4个字节的原因｡
这里重要的是我们仍然可以加一, 编译器知道转到下一个地址｡
因此,
无论系统中的数据类型是长整型､ 字符型还是其他类型, 添加1或2都将添加正确的字节数｡
这是我想给你们看的另一个很酷的例子, 因为指针算法非常重要, 在迭代或遍历数组时非常有用, 它使数组更简洁,
更高效｡
所以我希望这对你有帮助｡ -谢谢—谢谢