1、参数传递的方式
每一次指针传递的实际意思都忘记了,所以这次记录下载
//调用test这个函数时候,传递时的是指针指向的内容,而不是指针变量
void test(char *a, char *b)
{a=(char*)malloc(5);
memcpy(a, "1234",4);
b=a;
将指针b的内容指a,下载指针b存放的是a指针指向的内容
}
int main()
{
char *a, *b;
//因为指针a和b都没有指向实际的数据内容
所以在test(a,b)的时候,传递的内容就是空的
test(a,b);
函数调用结束后,指针a和b的的内容都没有改变,并没有把
}
说明:无法通过函数调用的方式,而不是通过返回值得方式,返回一个指针指向的内容
2、返回值的方式
char *test2()
{
char * a;
a=(char*)malloc(10);
memcpy(a, "1345", 4);
return a;
}
通过返回值得方式,可以返回一个指针地址内容,通过a=test2();的方式返回一个实际的地址信息
两种方式不一样的操作,指针的内容传递的方式也是不一样的,所以传递的内容也就不一样
char *b; b的值在通过单步跟踪是,是一个地址信息;*b是该指针指向的内容