关于函数传一级指针与二级指针的问题

奋斗小青年 奋斗小青年 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
网上看很多资料,谈到值传递与引用传递。认为指针传递是值传递,传进来的是实参的副本。
比如一个这样的函数 void passParamType(char * p)
{
// p = &全局变量;
//*p = 'a';
}

void passParam2Type(char ** p)
{
//p = &另外的全局变量;
//*p = "mgh";
}
前面两个方法主要涉及到的一级指针与二级指针改变地址与所指向的内容的问题。
当函数传实参进来,比如第一个函数 就好像 p = array; 第二个也一样,其中array是个字符数组。
下面来说说我的想法。 对于两个函数当p = &全局变量,此时很多资料都是说此时操作的是实参的副本对实参没影响,这里我就有点迷糊了,这里干嘛非得扯上实参的副本,还是编译器机制就是这样(PS:编译器机制我不知道)p = &全局变量 这里是对形参重新给予了新的地址,对实参当然没影响。*p 这里倒好理解,形参p指向的实参的地址,*p当然就是实参的内容,因此就可以改变。 求各位麻烦指教下,小弟在此学习了。还望大家多指出我的错误所在。
...全文

相关推荐

评论 21
收藏 已收藏
分享
返回顶部
奋斗小青年
C++ 语言 65,214 成员 250,514 内容