内容简介: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++中函数的参数传递,内联函数和默认实参的理解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算统计
Geof H.Givens、Jennifer A.Hoeting / 王兆军、刘民千、邹长亮、杨建峰 / 人民邮电出版社 / 2009-09-01 / 59.00元
随着计算机的快速发展, 数理统计中许多涉及大计算量的有效方法也得到了广泛应用与迅猛发展, 可以说, 计算统计已是统计中一个很重要的研究方向. 本书既包含一些经典的统计计算方法, 如求解非线性方程组的牛顿方法、传统的随机模拟方法等, 又全面地介绍了近些年来发展起来的某些新方法, 如模拟退火算法、基因算法、EM算法、MCMC方法、Bootstrap方法等, 并通过某些实例, 对这些方法的应用进行......一起来看看 《计算统计》 这本书的介绍吧!
MD5 加密
MD5 加密工具
RGB HSV 转换
RGB HSV 互转工具