C++怎么按地址传递输出一个字符数组?

把数组的几种传递方式弄混了,希望指导!请问这个是不是按值传递,错误在哪?... 把数组的几种传递方式弄混了,希望指导!
请问这个是不是按值传递,错误在哪?
展开
 我来答
sssworld
2017-11-27 · TA获得超过160个赞
知道小有建树答主
回答量:89
采纳率:86%
帮助的人:34万
展开全部
void show(char a[]);
等同于
void show(const char * a);
所以虽然看上去传的是数组(或者说,C风格的字符串),但实际上传的是字符指针,实质是传值。
一般传参数分为传值、传引用。而传指针则是把“指针”这个变量传了过去,所以在程序内部和传值其实是一样的。
如果要以传引用的方式传指针,要这么写
void show(char* & a);

void show(char & a[]);
更多追问追答
追问
void show(char a[]) 和 void show (const char * a)上传的均是这个数组的地址对么?
追答
对的,两者是等价的,这种写法中,a实际上都是一个不同于main函数中的新的变量,但a和main中的a中存的内容是一样的,都是字符数组的第一个字符的地址
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式