1.指针参数
#include "stdafx.h"
#include <iostream>
using namespace std;
char * a = new char[20];
void test(char * pArr)
{
cout<<&pArr<<endl;
a = "hello";
pArr = a;
cout<<pArr<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
char * arr = "12321";
cout<<arr<<endl;
cout<<&arr<<endl;
test(arr);
cout<<&arr<<endl;
cout<<arr<<endl;
}
输出为:
由第三行可以看出,在传递指针的时候,函数还是进行了形参到实参的拷贝,所以改变函数传入指针的指向值不会影响原来的值。
如果你需要修改指针的值,那么你需要改下参数为:
void test(char * &pArr)
2. 数组参数
数组参数,会被降阶,转化为指针,从而无法知道数组的长度,所以一般传字符数组的话,也需要传入数组的长度,另外,也可以使用 & 修改值。