内容简介:c++ 的形参 大致可以分三种 ,传值 ,传指针 传 引用,传值 ,不改变原来函数外变量的值,原来是几 还是几,只是copy 了一个副本,副本在变而已传指针,等于把 原来函数外 变量的内存地址传进来了,那么你操作的其实是对应地址上的数据, 那么你的任何操作 都会影响函数外相应变量的值,并改变他
c++ 的形参 大致可以分三种 ,传值 ,传指针 传 引用,
传值 ,不改变原来函数外变量的值,原来是几 还是几,只是copy 了一个副本,副本在变而已
传指针,等于把 原来函数外 变量的内存地址传进来了,那么你操作的其实是对应地址上的数据, 那么你的任何操作 都会影响函数外相应变量的值,并改变他
传引用 ,其实和指针类似,虽然传的不是地址,但是你对函数外的变量操作完了,回头总会跟人家说,我把你强奸了,你要有点响应。
另外比较特殊的就是 数组,c++ 形参可以是数组,但是返回值 不可以是数组,
另外是全局静态变量,你对他做了操作 ,传值的话 ,人家不变,传指针 传引用 他就会变 ,
需要注意的是
你的 函数 形参 声明的是值 ,比如 int a , 调用的时候 就传 int a 类型的a 数据
你的函数 形参 声明的是引用 ,比如是 int &a, 调用的时候 传 int a 的a数据
你的函数 形参声明的是 指针 ,比如 是 int *a ,调用的时候 传 int a 的 &a
函数形参 有数组 ,数组作为形参有三种表示方法
void myFunction(int *param) void myFunction(int param[10]) void myFunction(int param[])
如果 函数 返回值是指针,则 函数名前缀要有 [*]
表明返回的是 数组指针,同时 你在接收函数返回值的时候也必须使用 相应的指针类型
以下代码 带领大家练习 几种函数形参的传递
#include <iostream>
using namespace std;
static int start=5;
int sub(int a,int &b){
b=b*2;
auto c=a-b;
return c ;
}
int mulple(int *k,int *z){
*k=*k+3;
*z=*z *2;
int res= *k * *z;
cout<<res<<endl;
cout<<*z<<endl;
cout <<*k<<endl;
return res;
}
int addz(int & x ,int &y){
x=x*2;
y=y+4;
int c=x+y;
cout<<c<<endl;
return c;
}
int * arrz(int *arr,int n){
for(int i=0;i<n;i++){
arr[i]=arr[i]+5;
start--;
}
return arr;
}
int main() {
std::cout << "Hello, World!" << std::endl;
int x=4,y=60;
int suz=sub(x,start);
cout<<suz<<endl;
cout<<start<<endl;
// int result=addz(x,y);
// cout<<x<<endl;
//// cout<<result<<endl;
// cout<<y<<endl;
// int rez=mulple(&x,&y);
int arrp[]={2,45,67,12};
int *rezs=arrz(arrp,4);
for (int k=0;k<4;k++){
cout<<arrp[k]<<endl;
}
cout<<start<<endl;
// cout<<rez<<endl;
}
俱往昔 从大学加入计算机学院的那一刻,到现在工作中来
语言的更迭,令人嘘吁
看了看自己的学习和使用历程
c ---> c++ ---> java ---> c# ---> nodejs ---> java ---> R ---> scala ---> shell ---> python ---> grovvy---> lua ---> kotlin---> swift ---> golang ---> c++
从开始又回到了 c++
大丈夫横刀立马,唯有 C++
认为 非常优秀的只有 c++ java c#
很优秀 很不错的 golang scala python
使用起来很顺手的 kotlin swift nodejs grovvy
心中最敬仰的 C shell
短小精悍的 R lua python shell
始终 不忍直视的 php 屁就是个屁 手动狗头 【 对语言要有包容性】
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- golang中的函数参数值传递和引用传递
- Python函数中参数是值传递,还是引用传递?
- python中函数的参数传递
- CGO 中传递回调函数和指针
- C++开发EOS基础指南:函数参数传递
- c++中函数的参数传递,内联函数和默认实参的理解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Art of Computer Programming, Volumes 1-3 Boxed Set
Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99
This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
HEX HSV 转换工具
HEX HSV 互换工具