


除指针外,仅使用全局变量,可以在功能上实现. 例如: int a,b; int main(){... a,b..mySwap();} void mySwap(){int t = a; a = b; b = t;} 但是,应谨慎使用全局变量. 因为在与您现在类似的情况下,我们使用功能的初衷是控制软件开发的复杂性. 当您实际开发更大的软件时,这将实现. 该功能是一劳永逸地实现重用,内聚c语言中 实参与对应参,包装和可读性等. 全局变量破坏了这些特性. 那么mySwap作为函数是毫无意义的.

补充:

那么为什么不能实现价值转移?首先要了解的是价值传递是什么. 完全理解事物的一种方法是首先将事物从高到低划分为不同的抽象级别,一次抽象一个级别. 用外行的话来说,首先是树干,然后是树枝和树叶c语言中 实参与对应参,然后又厚又薄. 有时仅了解高级知识就足以解决某些问题. 然后我们可以想象形式参数和实际参数是指位于不同位置的两个框. 然后,您的主要货币携带x和y框,而您的互换货币携带a,b和t框. swap(x,y)意味着分别将框x和y的内容复制到a和b. a和b的内容与x和y的内容相同. swap的交换操作仅影响a和b,而不影响x和y.

补充:
将实际参数的内容复制到形式参数,称为值传递. 在不影响实际参数的情况下更改形式参数称为单向.
补充:
说错. 上面的形式参数是x和y,实际参数是a和b. . 欢迎提问〜
因为调用函数void没有返回值,所以您的ab未被更改
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-260091-1.html
一天内所有软件闪退了两次
你的阿里巴巴就是死的那一天
你如果在伊拉克对美国说“关你鸟事”