14、函数的传值和传指针

原创 2004年10月12日 00:41:00
————————————
向函数传参数时,一般而言,传入非const的指针时,就表示,在函数中要修改这个指针把指内存中的数据。如果是传值,那么无论在函数内部怎么修改这个值,也影响不到传过来的值,因为传值是只内存拷贝。

什么?你说这个特性你明白了,好吧,让我们看看下面的这个例程:

void
GetVersion(char* pStr)
{
    pStr = malloc(10);
    strcpy ( pStr, "2.0" );
}

main()
{
    char* ver = NULL;
    GetVersion ( ver );
    ...
    ...
    free ( ver );
}

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

传值,传指针和传引用区别和联系

C++写了很多年,有一天,写着写着代码。竟然自己发现对传值,传指针,传引用这个每天都在用的传递方式的区别还不是很清楚。以为自己懂了,其实还理解得还不够深入,基础还需要花时间琢磨。今天参考了很多篇博客和...
  • zx3517288
  • zx3517288
  • 2016年11月27日 12:15
  • 802

指针参数的传值与传址

使用传址的方式才能使针对函数参数所做的处理在函数调用结束后仍然有效,指针参数也是如此。 有如下代码: #include void test(char *p) { printf("i...
  • Genuineness
  • Genuineness
  • 2012年07月09日 23:06
  • 1100

函数调用三种方式:传值&传引用&传指针

相关概念 c++三种传递参数方式 传参数的值(称值传递,简称传值),传参数的地址(称地址传递,简称为传址),和引用传递(称为传引用),相应的函数传值调用,传址调用和传引用调...
  • smallgyy
  • smallgyy
  • 2012年12月01日 19:32
  • 1804

传值和传引用、传指针的区别

c语言中所有传递给函数的参数
  • a15994269853
  • a15994269853
  • 2014年04月18日 09:50
  • 10818

C/C++的值传递,指针传值和引用传值的区别

首先让我们来看下面几个代码:
  • zhushh
  • zhushh
  • 2014年11月03日 12:07
  • 2032

C/C++语言函数参数传递:传值,传指针,传引用

前面我们介绍了函数的调用约定,明白了函数调用者与被调用者之间传递参数的顺序与如何进行栈恢复的。 实际上,函数调用者如何将参数传递给被调用者也是有讲究的。 总的来说,函数参数传递分为3种情况:传值,传指...
  • u012713968
  • u012713968
  • 2016年01月08日 14:50
  • 530

C语言中指针的传值和传址

#include #include void Func(char* p) { p = (char*)malloc(50); } void main() { char* cptr = NUL...
  • iFuMI
  • iFuMI
  • 2016年09月18日 19:36
  • 997

C语言教学--函数之间传值和传址的区别

函数之间参数的传递, 对于一般的概念(函数的定义,函数返回值,函数的调用等)就不在这里重述了, 对于初学者总是不好理解, 其实这和我们中学学习的f(x,y)=x2+y2-1是一样的, 我们可以把x,和...
  • lovesummerforever
  • lovesummerforever
  • 2013年11月14日 13:56
  • 11813

Go语言 传值和传指针性能对比

以往的C编程经验告诉我们,指针传参会有更好的性能,在Go语言中,这条经验也是通用的。但是需要留意两个问题: 指针传参会导致参数的操作领域不确定,到底函数内部会不会改变传入的对象呢?Go语言中没有...
  • abv123456789
  • abv123456789
  • 2014年04月20日 21:11
  • 2791

C++ 传值,传引用和传指针-参考Effective C++ 第三版Item20~21

拷贝构造函数 copy construtor  为什么有copy construtor? 函数的传参数有三种方式:传值,传引用和传指针。传值会产生对象的副本,而后两者是传的是对象的别名和对象的指针。...
  • dannyPolyu
  • dannyPolyu
  • 2013年09月12日 15:24
  • 764
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:14、函数的传值和传指针
举报原因:
原因补充:

(最多只允许输入30个字)