今天在写一道交换数字的题目时,我碰见了这样的问题
按照交换函数的定义,应该值都会变化,可结果却不是这样,反观我另一个程序,我把打印函数(printf)放到了swap函数中,值却会发生变化
看来问题是出在了printf函数所在的位置不同。那么我试试把三组数据转换的printf函数也放在swap函数中而不是放在main函数中。
看来结果和我们预测的一样,位置不同导致了结果不同。我又听了听课,发现导致这样的原因是因为局部变量(也叫做本地变量)的缘故。
譬如在一个代码块中,声明了一个变量
{
int a=0;
}
把这个放在主函数中,例如
通过这个例子就能很好的看出来局部变量a2和全局变量a1、a3之间的变化。
并且a2只受到它的块的影响,因为a3等于a1,所以局部变量a2只在它的代码块里面起作用。
我会继续学习c语言知识,与大家分享!
--------------------------------------------——--————————————————————————-
2022.2.28继续更新:
根据查到的本地变量的规则:
也就是说在块{}里面的函数使用具有局限性,例如:
这也就是局部变量的定义,它只在块内有效,出了找个块,就不再存在了
以上就是本次的分享内容了,喜欢我的分享的话,别忘了点赞加关注哟!
如果你对我的文章有任何看法,欢迎在下方评论留言或者私信我鸭!