博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
所谓的传值和引用
阅读量:5268 次
发布时间:2019-06-14

本文共 1252 字,大约阅读时间需要 4 分钟。

一直反反复复总是记不太清

今天总结:

如果你在调用的时候用了引用,对应的函数参数必须有*

如果你在调用的时候没有&,则如果你传的是指针,则对应函数要有参数要有*,如果想把参数本身传过去,要在函数定义的参数处加&

 

对于字符串而言和对于整型而言 cout<<a不一样的

void fun(int *a)

{
cout<<a+1<<endl;
}
int main()
{
int a=3;
fun(&a);
}

输出的是一个地址,参数是指针

void fun(int *a)

{
cout<<*a+1<<endl;//取内容
}
int main()
{
int a=3;
fun(&a);
}

。。。。。。。。。。。。。。。。。

void fun(int &a)

{
cout<<a+1<<endl;
}
int main()
{
int a=3;
fun(a);
}//4

参数是常量本身

。。。。。。。。。。。。。。。

void fun(char *a)

{
cout<<a+1<<endl;
}
int main()
{
char *str="fdsfds";
fun(str);
}//dsfds

...................

void fun(char *&a)

{
cout<<a+1<<endl;
}
int main()
{
char *str="fdsfds";
fun(str);
}一样的

。。。。。。。。。。。。。。。。

void fun(char *a)

{
cout<<*a<<endl;
}
int main()
{
char *str="afdsfds";
fun(str);
}//a

................................

 

。。。。。。。。。。。。。

void fun(char **a)

{
cout<<a+1<<endl;
}
int main()
{
char *str="fdsfds";
fun(&str);
}//一个地址

。。。。。。。。

void fun(char *a)

{
cout<<&a<<endl;
}
int main()
{
char *str="afdsfds";
fun(str);
}

指针的地址

。。。。。。。。。。。。。。。

void fun(char *a)

{
cout<<&(*a)<<endl;
}
int main()
{
char *str="afdsfds";
cout<<str;
fun(str);
}

两遍afdsfds

*a=a;a的地址是字符串首地址,相当于str

。。。。。。。。

void fun(char **a)

{
cout<<*a+1<<endl;
}
int main()
{
char *str="fdsfds";
fun(&str);
}//dsfds

转载于:https://www.cnblogs.com/8335IT/p/5907719.html

你可能感兴趣的文章
Ztree异步树加载
查看>>
复杂问题的简单抽象:魔兽世界中的兔子们
查看>>
UVA 10529-Dumb Bones(概率dp)
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
MyEclipse DB Browser使用图文全攻略
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
A - Vasya and Socks
查看>>
项目管理、设计开发、代码管理、bug管理工具介绍
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
linux文件编码查看与修改
查看>>
[Java] 系统环境变量配置
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
HIT1946 希尔伯特分形曲线(dfs)
查看>>
第二次团队冲刺第二天
查看>>
青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 2
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>