打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[收藏]C++ Tips(8)--指针参数 - 心如止水--coofucoo的专栏

/*这一系列文章《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分配空间,但这种方法根本没有什么作用,原因就是――这是传值,不是传指针。你或许会和我争论,我分明传的时指针啊?再仔细看看,其实,你传的是指针其实是在传值。



本文引用通告地址: http://blog.csdn.net/coofucoo/services/trackbacks/480995.aspx
[点击此处收藏本文]
发表于 2005年09月14日 11:35 PM
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
typedef的用法
C语言中关键字auto、static、register、const、volatile、ex...
C/C 程序设计员应聘常见面试试题 strcpy
C语言——小知识
数组传参的问题
关于typedef的用法总结 - Bigcoder - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服