hello,小伙伴们,大家好。这里是左左右。这期视频我们接着讲指针的应用。前面视频我们写过一个通过直径计算半径的函数。快速的来写一下。打印输出来看一下结果是不是没有问题?接着,我们用指针的形式来重新写一下这个函数。打印输出来看一下结果是不是也没有问题?通过上期视频的学习我们知道第一种函数的写法。

它是新建了一个局部变量用来存放变量d1中的值,也就是说在函数中我们改变变量的值也只是改变局部变量中的值。对d1本身是没有任何影响的,接着,我们写代码来验证一下。点击运行。d1的值是没有发生任何变化。接着,我们来看第二种写法。通过上期视频的学习我们知道指针是通过地址来直接操作变量d1中的值。
我们写代码来验证一下。点击运行。d1的值是不是发生了改变?第二种写法省去了再次定义一个新的局部变量,而是通过指针的形式直接操作变量d1。这样就提高了代码执行的效率。但是,第二种写法存在一个什么样的问题呢?由于它是通过地址来直接操作变量d1的,他会导致d1本身的值发生变化。
当其他函数使用d1时,这时d1中的值就是20了,而不是10了,这样就很混乱了。为了防止这种情况的发生,我们经常在指针前面加一个const的关键词。这时在函数中改变指针对应地址中的值时就会报错。通过前面几期视频的学习我们知道。函数是可以通过return来产生一个返回值的。

但是,如果我们需要多个返回值应该怎么办呢?假设我们现在有这样一个需求,通过调用函数返回圆的半径,周长和面积。首先,我们在主函数中定义变量c和s分别代表周长和面积并初始化。由于周长和面积是存在小数点的,所以,数据类型选择float。接着,我们把浮点型变量c和s的地址传入函数。


由于传参传入的是地址,所以,我们在函数这里定义指针cp和sp。接着,给指针cp对应地址中的值赋值,也就是给变量c赋值。然后,给指针sp对应地址中的值赋值,也就是给变量s赋值。这里我们就通过指针的形式直接改变了变量c和s中值。也就实现了一个函数有多个返回值的效果了。点击运行。
输出的正是我们想要的结果。通过这个案例我们得到这样一个结论。就是说我们不想改变变量本身的值时。就在前面加一个const的关键词。当想要改变的变量本身的值时,就不需要const这个关键词。c语言基础的讲解暂时也就告一段落了。后面如果有大的c语言知识点。我仍然也会单独拿出来给大家进行讲解。
好的,今天的视频就到这里了。您的关注,点赞和收藏是我持续更新下去的最大动力。我们下期见。