c语言指针传递说明

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是该指针指向的内容


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值