看一段代码。这里使用了指针参数,但并不能实现双向传值
#include <iostream>
using namespace std;
void f2(char *s)
{
cout<<"s+2=>"<<s+2<<endl;//注意这里字符串数组的用法,这里s+2得到的也是一个字符串首地址,但没有加*的时候,指的就是一个字符串,加了*就是那个地址的字符
char a[20]="C++Programming!";
s=a;
cout<<"s=>"<<s<<endl;
}
int main()
{
char e[10]="123abc#";
cout<<"e=>"<<e<<endl;
f2(e);
cout<<"e=>"<<e<<endl;
}
这里被调函数f2中通过"s=a"改变了形参指针所指变量的值,使它指向了另外的位置,这样不可实现双向传值。只有在被调函数中改变形参指针所指变量的值,那时改变的将是主调函数中实参指针所指变量的值,才能实现双向传值