看注释,明白一切。。
#include <iostream>
using namespace std;
char* func1(char *p);
void func2(char *p);
void func3(char * &p);
char s1[]="原来的";
char s2[]="指向我了吗";
int main()
{
char *ptr=s1;
cout<<ptr<<endl;
//ptr=func1(ptr); //返回值改变ptr使它指向另一个地址
//func2(ptr); //ptr的指向没有改变,func2函数中改变的只是它的副本(一个局部变量)
func3(ptr); //改变了ptr的指向,func3函数的形式参数为引用类型,实参和形参是同一个变量
cout<<ptr<<endl;
return 0;
}
char* func1(char *p)
{
p=s2;
return p;
}
void func2(char *p)
{
p=s2;
}
void func3(char * &p)
{
p=s2;
}
本文通过一个C++示例程序详细解释了不同函数参数传递方式对指针的影响,包括如何通过值传递、引用传递来修改外部变量。
647

被折叠的 条评论
为什么被折叠?



