[收藏]C++ Tips(8)--指针参数

[收藏]C++ Tips(8)--指针参数<script language="javascript" type="text/javascript"> document.title="[收藏]C++ Tips(8)--指针参数 - "+document.title </script>

/*这一系列文章《C++ Tips》是公司Code Committee专家会推荐工程师看的,感觉很好,拿出来与大家共同提高。并不是知道多少会使人与人产生差别,真正的差别在于你能做到多少。

--coofucoo
*/ 

 

函数的传值和传指针
向函数传参数时,一般而言,传入非const的指针时,就表示,在函数中要修改这个指针把指内存中的数据。如果是传值,那么无论在函数内部怎么修改这个值,也影响不到传过来的值,因为传值是只内存拷贝。让我们看看下面的这个例程:
void GetVersion(char* pStr)
{
   pStr = malloc(10);
   strcpy ( pStr, "2.0" );
}
void main()
{
   char* ver = NULL;
   GetVersion ( ver );
   ...
   ...
   free ( ver );
}

类似这样的问题是一个新手最容易犯的错误。程序中妄图通过函数GetVersion给指针ver分配空间,但这种方法根本没有什么作用,原因就是――这是传值,不是传指针。你或许会和我争论,我分明传的时指针啊?再仔细看看,其实,你传的是指针其实是在传值。

函数的传值和传指针
向函数传参数时,一般而言,传入非const的指针时,就表示,在函数中要修改这个指针把指内存中的数据。如果是传值,那么无论在函数内部怎么修改这个值,也影响不到传过来的值,因为传值是只内存拷贝。让我们看看下面的这个例程:
void GetVersion(char* pStr)
{
   pStr = malloc(10);
   strcpy ( pStr, "2.0" );
}
void main()
{
   char* ver = NULL;
   GetVersion ( ver );
   ...
   ...
   free ( ver );
}

类似这样的问题是一个新手最容易犯的错误。程序中妄图通过函数GetVersion给指针ver分配空间,但这种方法根本没有什么作用,原因就是――这是传值,不是传指针。你或许会和我争论,我分明传的时指针啊?再仔细看看,其实,你传的是指针其实是在传值。

函数的传值和传指针
向函数传参数时,一般而言,传入非const的指针时,就表示,在函数中要修改这个指针把指内存中的数据。如果是传值,那么无论在函数内部怎么修改这个值,也影响不到传过来的值,因为传值是只内存拷贝。让我们看看下面的这个例程:
void GetVersion(char* pStr)
{
   pStr = malloc(10);
   strcpy ( pStr, "2.0" );
}
void main()
{
   char* ver = NULL;
   GetVersion ( ver );
   ...
   ...
   free ( ver );
}

类似这样的问题是一个新手最容易犯的错误。程序中妄图通过函数GetVersion给指针ver分配空间,但这种方法根本没有什么作用,原因就是――这是传值,不是传指针。你或许会和我争论,我分明传的时指针啊?再仔细看看,其实,你传的是指针其实是在传值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值