外贸网

  • 首页
  • 什么时候用指针形参?什么时候用引用形参? 什么时候应该用指针形参?什么时候该用引用形参?

    作者:媒体   更新日期:2024.05.19
    标准 C 中是没有引用形参的,只能使用指针形参。
    C++ 引入指针形参是为了降低指针灵活性带来的风险,指针形参不仅可以将数据的引用传入函数,还可以在函数内改变这个指针,也就是说在函数内部可以改变调用域的变量(而不仅仅是对象)。
    相比起引用,指针有这些特点:
    指针变量可以被重复赋值或更改(引用则不行,一经赋值不能再改)
    指针变量可以为空(引用必须指向具体对象)
    如果你用不到这些特性反而觉得它们会带来麻烦,而且可以接受非 Pure C(例如不需要支持 Objective-C 等其他 C 的超集),那么就用引用参数吧,甚至还可以在需要的情况下加 const 进一步约束。

    看个人的爱好风格

    什么时候应该用指针形参?什么时候该用引用形参?

    我只能说一些常用的情况:用指针的时候,往往是用于地址连续的、大量的数据,或者是一些没有什么名字的地址单元,传递的时候只需传递首地址,处理的时候,可以用指针加入的方法逐个引用地址单元,执行的效率可以大大提高。用引用的目的往往只是为了能够在函数中可以改变实参的值。

    这个问题不太容易严格区分,不过可以简单说一下。

    指针:大家都知道,指向一个内存地址。但同时请注意一个东东,就是指针的步长(我叫它步长)其实就是指针的类型。C/C++中,类型转换对于指针来说同样适用,也就是可以改变步长。所以它比较特别,灵活性很大。更特别的一点是:它可以什么也不指向,就对着NULL/0。

    引用:它的局限性要大很多,它只是一个对象的别名。这个别名的意思就是“它是依赖别的对象存在现而存在,它不会独立存在!”。所以请特别注意,引用必须指向一个已经存在的对象,不可以凭空存在。

    明显的区别:
    指针不依赖于对象的存在而存在,就是可以“凭空存在”;而引用不能“凭空存在”,必定指向一个对象。

    一般来说,能用引用的地方,用指针也可以。但是指针太灵活(它可以指向NULL),然而如果此时提取指针对象就会出现“不明确行为”的严重错误。然而用引用就不会出现这样的错误,因为引用必须指向一个已经存在的对象,它不会为空。

    想说也就是这么多了,希望你多多使用就能多多体会了。

    c++引用,指针和一般变量在当做函数参数时的区别
    答:引用就是给被引用变量起别名,其实是被引用变量本身,指针就是把存放变量的地址传过去了,这两个当参数传入时,对他们的修改都会影响到变量本身。一般变量就是最简单的值传递,就是把变量的值传过去了,变量本身没过去,所以对形参的修改,不会影响到变量本身。朋友,请【采纳答案】,您的采纳是我答题...

    c语言中,函数的形参什么时候必须是指针
    答:情况1 需要读入的数据是比较大的数据,使用指针作为参数可以节省堆栈 比如 定义1个结构体 typedef struct test { char buffer1[10000];char buffer2[10000];//后面还有一大堆成员 }test_ts;void Func1(test_ts t1){ //函数体是对t1成员进行Read处理 } void Func2(test_ts *t1){ //函数体是...

    参数用引用和指针有什么区别?
    答:指针和引用的定义和性质上面有区别,指针是一个变量,只不过它存储的是一个地址,指向内存的一个存储单元,而饮用跟原来的变量,实质上是同一个东西,只不过是原变量的一个别名而已针和眼,指针和引用作为参数进行传递时有区别。

    C++中使用指针、引用进行参数传递
    答:第一张图,你只是传入一个参数,只是一个值,就是在main函数里定义的,在swap函数里面是有进行参值的改变,而函数结束后,参形并不能改变实参,所以值没有变。你第二和第三张,传入的是两个实参的地址,把地址里的内容进行交换,就是两个值,而改变后的值在放入地址里面,所以有改变值。简单点讲...

    函数的形参,什么时候该用指针
    答:当拟用被调函数来改变主调函数中的变量值时得考虑使用指针,否则不可能达到永久性改变主调函数中的变量值的目的;当被调函数用来操作主调函数中的数组时就使用指针形参,否则无法操作成功;有些操作是用不用指针都可行的,但用指针显得更简单明了,所以为了简化代码设计也考虑使用指针形参……

    C语言中指针和引用的区别
    答:指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。这两个概念没有任何相关性。指针是实实在在的变量...

    C/C++何时使用引用和指针
    答:明显的区别:指针不依赖于对象的存在而存在,就是可以“凭空存在”;而引用不能“凭空存在”,必定指向一个对象。一般来说,能用引用的地方,用指针也可以。但是指针太灵活(它可以指向NULL),然而如果此时提取指针对象就会出现“不明确行为”的严重错误。然而用引用就不会出现这样的错误,因为引用必须指向...

    C++中指针和引用的区别?
    答:指针和引用的联系与区别 ★ 相同点:1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1. 指针是一个实体,而引用仅是个别名;2. 引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变;4. 引用...

    指针的与“引用”的区别
    答:所以需要给他返回一个 reference.(4)其实引用在函数的参数中使用很经常.void Get***(const int& a) //这样使用了引用又可以保证不修改被引用的值{}★ 相同点:1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1. 指针是一个实体,而引用仅是...

    引用和指针的异同?
    答:引用和指针都是指针,引用是一钟常量指针,初始化需要指定指向哪个变量,一旦指定就不能修改。常量指针是引用的本质!!!