龙空技术网

C++函数参数采用变量、引用和指针的区别

二狗的随笔 224

前言:

现时朋友们对“c语言的指针做参数怎么做”大体比较注意,朋友们都想要分析一些“c语言的指针做参数怎么做”的相关文章。那么小编在网络上搜集了一些对于“c语言的指针做参数怎么做””的相关资讯,希望同学们能喜欢,各位老铁们快快来学习一下吧!

C++的函数传递参数有变量、引用和指针三种方式:

在纯C语言中最常用的是使用变量传递参数。形参是实参的一个拷贝,形参的改变不会影响到实参。采用C++引用的方法,则可以让函数的形参来改变实参。当然,在C语言中,如果想改变实参,也可以采用指针作为函数参数的方法。

此外,数组作为函数的参数时,是传引用的;形参数组改变了,实参数组也会改变。

注意:

& 和 * 在变量定义的时候和在做计算的时候意义是不一样的

* 在变量定义的时候是表示定义一个指针类型的变量* 在做计算的时候是指获得一个指针变量指向的地址中所存储的变量的值& 在变量定义的时候是表示定义一个变量的引用& 在做计算的时候是指获得一个变量的地址,也就是说获得这个变量的指针

参考代码:

#include <iostream>#include <cstdio>using namespace std;// use pointer 指针方式void Swap1(int * a, int * b){ int tmp; tmp = *a ; *a = *b ; *b = tmp ; cout << "in func Swap1:a=" << *a << "; b=" << *b << endl ;}// 变量方式void Swap2(int a, int b){ int tmp; tmp = a ; a = b ; b = tmp ; cout << "in func Swap2:a=" << a << "; b=" << b << endl ;}// pass by reference// 引用方式void Swap3(int &a, int &b){ int tmp; tmp = a ; a = b ; b = tmp ; cout << "in func Swap3:a=" << a << "; b=" << b << endl ;}int main (){ int a = 4, b = 5 ;  //变量方式 Swap2(a,b);   cout << "in main: a=" << a << "; b=" << b << endl ; //引用方式  Swap3(a,b); cout << "in main,pass by reference mode: a=" << a << "; b=" << b << endl ; //指针方式  Swap1(&a,&b); cout << "in main,pass by pointer mode: a=" << a << "; b=" << b << endl ; return 0 ;}

程序输出结果:

in func Swap2:a=5; b=4in main: a=4; b=5in func Swap3:a=5; b=4in main,pass by reference mode: a=5; b=4in func Swap1:a=4; b=5in main,pass by pointer mode: a=4; b=5

标签: #c语言的指针做参数怎么做