用指针变量作为函数参数, 在函数执行过程中指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然可以保留下来
如果在函数内部改变函数参数的值(也就是指针变量的值,而不是指针变量所执行的变量值),那么传递给函数的指针变量的值不变
void TestPointParam(char* pBuffer)
{
pBuffer++;
memcpy(pBuffer, "jklmnopqr", 9);
Sleep(1000);
}
int _tmain(int argc, _TCHAR* argv[])
{
char *pBuffer = NULL;
pBuffer = (char*)malloc(10);
memcpy(pBuffer, "abcdefghi", 10);
TestPointParam(pBuffer);
free(pBuffer);
return 0;
}
变量pBuffer在调用TestPointParm后,内容改变,但是地址不变