大家好,今天来为大家分享深入理解函数参数:变量、指针与引用差异解析的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
//变量作为函数参数
无效交换1(int a,int b){
整数t;
t=a;
a=b;
b=t;
}
//指针作为函数参数
无效swap2(int *a, int *b) {
整数t;
t=* a;
*a=*b;
*b=t;
}
//作为函数参数的引用
无效swap3(int a,int b){
整数t;
t=a;
a=b;
b=t;
}
//指向指针作为函数参数的指针
无效move1(int *a) {
一个=一个+1;
}
无效move2(int **a) {
*a=*a+1;
}
int main() {
整数x(5), y(10);
cout"变量作为函数参数:"输出是
变量作为函数参数:
x=5,y=10
交换1: x=5,y=10
指针作为函数参数:
x=5,y=10
交换2: x=10,y=5
作为函数参数的引用:
x=10,y=5
交换3: x=5,y=10
指向指针作为函数参数的指针:
a[0]: 1
*pa=1 在调用move1 之前
调用move1 后*pa=1
调用move2后,*pa=2
swap1()
在swap1()中开辟了新的内存空间,分配给a和b。它们未分配x 和y。在swap1()中,a和b交换了值,但是当swap1()退出后,a和b的内存空间都被清空了,而x和y的值没有改变,所以值的交换失败。
swap2()
swap2()使用指针作为形参,传入x和y的地址。 x和y是在swap内部直接操作的,所以数值交换成功。
swap3()
swap3() 使用引用作为函数参数。它不会在交换区中开辟新的内存空间。它直接对x 和y 进行操作。 a 和b 只是相当于x 和y 的别名(参见引用的定义),因此交换成功。
好了,文章到此结束,希望可以帮助到大家。
【深入理解函数参数:变量、指针与引用差异解析】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于明白为什么学编程的时候总是有这些概念!
有16位网友表示赞同!
这三者之间的区别其实挺重要啊,弄清楚可以写得更方便。
有13位网友表示赞同!
以前一直以为它们都是一样的,看了这个标题感觉很有学问!
有18位网友表示赞同!
我要开始好好看看怎么用变量、指针和引用当参数传递信息了,很期待!
有18位网友表示赞同!
函数传参就是个麻烦事,希望这篇文章能让我更胜一筹。
有9位网友表示赞同!
学习编程确实需要循序渐进,这些基本的知识点不容忽视。
有19位网友表示赞同!
感觉这个标题有点像高级语法,要好好琢磨琢磨了。
有16位网友表示赞同!
很多时候不知道传参的时候到底应该用哪些方法,这篇文章能帮到我吗?
有20位网友表示赞同!
变量、指针和引用听起来很抽象的样子,希望能清晰解释一下。
有19位网友表示赞同!
函数传参也是编程中需要注意的部分,要好好理解才能写出高效的代码。
有20位网友表示赞同!
这个概念感觉有点像数学中的标量、向量区别吧?
有19位网友表示赞同!
之前没了解过指针和引用的使用场景,想通过这篇文章增加学习。
有16位网友表示赞同!
函数参数的使用技巧总是要不断地学习和积累,希望这篇文章能让我找到新思路!
有5位网友表示赞同!
编程语言的复杂性让人不得不佩服它的强大,好好消化一下这些基础概念!
有8位网友表示赞同!
变量、指针和引用都是编程的基础知识,掌握了才能写出更优秀的代码。
有16位网友表示赞同!
感觉这篇文章应该有实例讲解出来,这样更容易理解。
有10位网友表示赞同!
希望能用通俗易懂的方式解释这些技术细节,方便小白学习。
有18位网友表示赞同!
期待文章能给出具体的案例分析,让我对变量、指针和引用传参有更深刻的印象!
有12位网友表示赞同!
掌握了函数传参技巧,可以写出更简洁、高效的代码!
有14位网友表示赞同!