当前位置:  编程技术>c/c++/嵌入式

c++函数中的指针参数与地址参数区别介绍

    来源: 互联网  发布时间:2014-10-11

    本文导语:  比如 一个函数 chat(link &a); chat(ling *a); 前者引入一个地址做形参 是不是可以把一个指针变量p。。 这么用chat(p); 那跟第二个函数 有什么区别呢 都是传地址啊。。 小弟弄不明白~~ chat(int&a); chat(int *a); 这两个函数...

比如 一个函数 chat(link &a); chat(ling *a); 前者引入一个地址做形参 是不是可以把一个指针变量p。。 这么用chat(p); 那跟第二个函数 有什么区别呢 都是传地址啊。。 小弟弄不明白~~

chat(int&a); chat(int *a); 这两个函数是完全不同意义的东西,你的理解主要是在int&a和int* a这个类型上面。要注意int&和int*是两个完全不同的类型。int&是引用类型,而int*是指向int类型变量的指针类型。 void chat(int&a) { a=20; } 调用此函数: int x=100; chat(x); // 此时x的值变为20了 如果函数如下: void chat (int*a) { *a=20; } 调用: int x=10; chat(&x); //此时x的值也会变为20; 这是他们有联系的地方,也就是他们都可以在函数里面改变外面变量的值,但是这两个的参数传递方式是不一样的void chat(int&a)这个函数是引用传递,而void chat(int*a);这个函数是值传递(虽然其传递的值是地址值,但是还是值传递)。 这个引用类型应该怎么理解呢? 我是这样理解的:int a=100;那么a到底是个什么东西,我们说a使我们定义的一个变量,那么变量又是个什么东西呢,不知道你有没有想过,我们不谈编译原理,但是你可以将a看成是这么一个东西,a代表了一块内存空间,注意:是一块内存空间,也就是说这一块内存空间可能由一个或多个字节组成,那么在VC++ 6.0中,int类型的变量占4个字节,所以a代表了4个字节的连续的内存空间。那么int &b=a;定义了这一句之后,b和a一样都代表了那4个字节的内存空间了。再看看int *c=&a;此时c是什么呢?c也代表了一块内存空间,在VC ++6.0中int*类型的变量占4个字节的内存空间,所以c代表了一个连续的4个字节的内存空间,在其内部放的值就是a代表的那块内存空间的第一个字节的地址值。 所以我们向chat(int&a)传递参数的时候例如chat(x)此时a与x同样代表一块内存空间,而chat(int*a)调用的时候:chat(&x);此时a里面的值就是&x,也就是x代表的内存的首地址。 所以你要明白,他们不是传递的都是地址!!!!! 在C++中地址和引用不是一个东西!!!

    
 
 

您可能感兴趣的文章:

  • Python函数默认参数和字典参数及可变参数(带星号参数)
  • java类中的方法就是函数了,函数参数全是传值了,传址参数怎样表示?
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • unix shell 下进程的命令行参数与源程序 main函数的入口参数 是同一回事吗? 第一次编 .sh 文件,哪一位肯帮忙?
  • 很菜,shell脚本中怎么写函数,怎么使用带参数的函数???
  • 如何将comm 2>>的重定向结果传输到一个函数呢,作为这个函数的参数输入
  • 各位高手:java是不是不支持缺省参数。为什么我在写一个类的构造函数时,加入缺省参数出现错误。
  • JAVA中函数调用时,能不能向 C/C++一样函数的入口参数可以为传出值(就是引用,或指针)
  • 急:unix的shell脚本中,定义了一个函数getDate(),在后面的执行命令参数用要使用这个函数的返回值,应该怎么写?
  • java中函数的缺省参数怎么定义?
  • probe函数参数传递过程?
  • 对recv函数第四个参数置0的疑问
  • 求助:ioctl函数的命令参数
  • Linux0.11 内核源码 main函数的参数问题
  • gtk 回调函数的参数传递问题!
  • 函数参数入栈顺序以及参数地址间隔的问题
  • ioctl函数的参数问题
  • write(1,buff,len);这个函数中的第一个参数是常数1??
  • 关于main()函数参数调用的问题,老师请进~谢谢
  • c++函数参数的含义
  • main函数中的参数args[]???
  • C++ Maps 成员 key_comp():返回比较元素key的函数
  • 怎么样在C++里调用Fortran函数??????
  • C++ Maps 成员 value_comp():返回比较元素value的函数
  • SOS ,在UNIX下编译C++程序时出现链接错误:未下义的符号,但函数库里有这些函数,不知道为什么?
  • C++ MultiMaps 成员 key_comp():返回比较key的函数
  • 求linux C++的时间相关函数及用法,急用,谢谢
  • C++ MultiMaps 成员 value_comp():返回比较元素value的函数
  • C++ 函数编程库 FC++
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化
  • C++ 程序中,如何增加c函数?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 深入解析函数指针与返回函数的指针
  • 指向类成员函数的指针其实并非指针
  • 请问如何根据函数指针打印出这个函数的名称?
  • 利用函数指针的好处是什么?
  • C:函数指针
  • 一般函数指针和类的成员函数指针深入解析
  • 一个线程函数如何取得GTK界面的所有控件指针?
  • 函数指针的一些概念详解
  • 系统函数返回的指针指向的内存释放的问题
  • sp->callback或snmp_callback函数指针在哪里赋值?
  • 函数指针的强制类型转换实现代码
  • 函数指针的问题
  • 有些系统函数返回一个数据指针,实际的内存占用空间应该在那里??
  • C#委托所蕴含的函数指针概念详细解析
  • C++中返回指向函数的指针示例
  • 请问return语句会执行哪些操作?在函数中return一个已分配内存的指针,该指针所占用的内存会释放吗?
  • C++普通函数指针与成员函数指针实例解析
  • 关于linux下多线程运行由同一函数指针传入不同函数体的问题
  • c/c++ 使用指针函数后的内存怎么处理?
  • dlsym 找不到函数指针?
  • C++普通函数指针与成员函数指针实例解析 iis7站长之家
  • 请问:定义了2个函数,其中第一个函数要访问另外一个函数的变量,怎么处理阿?谢谢
  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • 如果知道一个函数的地址或函数名,如何得到函数所在的文件名?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • java的数学函数在那个类中,如幂函数、指数、对数、双曲线函数等?
  • cityhash 32位,64位和128位介绍及函数列表
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程
  • PHP的substr() 函数用法
  • 在内核的某个函数中,如何能知道是哪个用户空间的函数调用了它,以及这个用户空间函数所在的文件?
  • linux c下利用srand和rand函数生成随机字符串


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3