精华内容
下载资源
问答
  • C++ 形参

    2014-08-04 09:09:57
    // c++primer.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std;  //指针形参 void reset(int *ip) {  *ip=30;   } //引用形参 void swap(int &v1,int...
    // c++primer.cpp : 定义控制台应用程序的入口点。
    //


    #include "stdafx.h"
    #include <iostream>
    using namespace std;
     //指针形参
    void reset(int *ip)
    {
        *ip=30;
     
    }
    //引用形参
    void swap(int &v1,int &v2)
    {
      int tmp=v2;
      v2=v1;
      v1=tmp;
    }
    //传递指向指针的引用
    void ptrswap(int *&v1,int *&v2)
    {
         int *tmp=v2;
         v2=v1;
         v1=tmp;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {


              int i=42;
    int *p=&i;
    cout<<"i: "<<*p<<'\n';
    reset(p);
    cout<<"i: "<<*p<<endl;


    int j=20;
    cout<<i<<"\t"<<j<<endl;
    swap(i,j);
    cout<<i<<"\t"<<j<<endl;
      


    int *pi=&i;
    int  *pj=&j;
    cout<<*pi<<"\t"<<*pj<<endl;
    ptrswap(pi,pj);
    cout<<*pi<<"\t"<<*pj<<endl;


          return 0;

    }




    展开全文
  • 主要介绍了C++形参与实参的区别实例解析,需要的朋友可以参考下
  • c++形参实参

    千次阅读 2013-08-06 11:01:55
    c++形参实参实参和形参,很抽象的一个概念,新手很难搞懂。 形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数.  形参的作用是实现主调函数与被调函数之间...

    c++形参实参实参和形参,很抽象的一个概念,新手很难搞懂。


    形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数.
         形参的作用是实现主调函数与被调函数之间的联系.
        
    实参:全称为"实际参数"是在调用时传递该函数的参数.实参可以是常量、变量、表达式、函数等.

    先说C语言:
        只要知道了按值传递和按地址传递的区别,就会明白实参和形参的具体工作细节。

    1)按值传递(不能改变实参)
        实参是变量,表达式等数值。
        函数调用的时候,实参和形参存在于内存中2快不同的区域,实参先自己复制一份拷贝,再把拷贝传给形参。由于是传递的是拷贝,所以实参不会受形参的影响,实参值不会被改变。

    2)按地址传递(可以改变实参)
        实参是指针。
        函数调用的时候,指针传给你,形参和实参指针都一样,对形参的任何操作就等于对实参的操做。实参的值就可以被改变。

     

    再说C++:
       C++有引用来代替指针这种落后的类型。

    1)const引用传递(不能改变实参)
       和上面的C中按值传递的效果一样,但是效率高一些,因为引用是不用拷贝实参的,减少了复制的开销。const就决定了不能改变实参。

    2)按引用传递(可以改变实参)
       引用其实大部分情况下和指针一样,对形参的任何操作就等于对实参的操做。实参的值就可以被改变。要不变,就学上面加个const。

    实际应用中,形参有3种用法:
    1)f(int X)       这C语言的用法,实参是数值,就不变;实参是指针,就可以改变。

    2)f(int& X)      C++的用法,实参可以改变。

    3)f(const int& X)C++的用法,实参不变。

    什么时候用哪一种呢?就是取决于是否改变实参!!!
    建议用C++的用法,虽然C++兼容C。

    注意:形参和实参的类型必须要一致,或者要符合隐含转换规则,当形参和实参不是指针或引用类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
    而如果函数的参数是指针或引用型类型变量,在调用该函数的过程中,传个函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。
     
    对于一般类型的实参,在程序运行完后其值不变,而对于引用或者指针类型的实参,由于用的是它本身的地址,所以程序运行完后它们的值改变了。

    注意比较(1)函数申明、(2)函数调用、(3)函数定义 的不同。
    申明:
    (1) int swap(int a,int b);   //子函数swap的参数为传值使用,使用的原始数据不会被子函数swap修改
    (2) int pswap(int &c,int &d);//子函数pswap的参数为传地址使用(引用),引用的原始数据能被子函数pawap修改
    //函数申明 格式: 是否返回值int/void 函数名pswap(参数的数值类型int 引用&/传值 形式参量的名称c,…)在这里形参的名称可有可无
    调用:
    swap(x,y);    //主函数里子函数调用的格式: 子函数名(实参1,实参2,…),这里函数名前面不加int、void,实参前面不写数值类型
    pswap(p,q);    //在这里 x、y、p、q是实际参数

    展开全文
  • C++ 形参为什么加入const 什么鬼? 本文参考博客:http://blog.csdn.net/zz460833359/article/details/48379901,感谢作者! 出错纠正:右图中形参前加上 const 即可。 总结congst:形参里限定为const表明...

    C++ 形参为什么加入const 什么鬼?

           本文参考博客:http://blog.csdn.net/zz460833359/article/details/48379901,感谢作者!

          

           出错纠正:右图中形参前加上 const 即可。

         总结congst: 形参里限定为const表明传入的形参必须为常量也就以为着传入的参数不能被改变这是一种保护数据的方式

     

    转载于:https://www.cnblogs.com/cjhd/p/7657010.html

    展开全文
  • 文章已移至 C++ 形参和实参在三中传递方式中的区别
    展开全文
  • c++形参和实参同名时,如何单步执行观察形参的变化? 方法:当程序运行到函数中时,添加变量观察即可。 转载于:https://www.cnblogs.com/ssfzmfy/p/4521805.html
  • C++ 形参和实参

    2018-12-17 21:34:04
    藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师 T。T 我觉得只要明白了值传递和地址传递,就应该能明白形参和实参...
  • C++形参与实参

    2020-03-07 09:54:25
    如果把函数比喻成一台机器,那么参数就是原材料,返回值...在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。int add(int m,int n)...
  • 问题:C++形参默认值为什么一定要放在最后? 1.会出现歧义! 2.从汇编角度看是怎么回事? 待解答!! 转载于:https://www.cnblogs.com/MyNameIsMT/p/5472423.html...
  • ![图片说明](https://img-ask.csdn.net/upload/202010/17/1602897951_199847.png) c++书里的一个例子,在创建函数的时候,它的形参带了&,为什么要带呢,不带好像也是可以的。求教!!!!
  • c++ 形参问题

    2015-05-02 11:01:57
    #include using namespace std; void changeValue_1(int i) ...形参是引用时,可以改变实参的值。...形参不是引用时,不改变。...形参是常量引用时,也不改变实参的值。 记录我的学习之路。
  • c++形参中的疑问

    2018-11-03 11:58:00
    c++形式参数固定后,我改变了值直接调试,值还是原来的值。
  • 本人是C/C++小白一个,理解不是特别深刻,本文适合C/C++初学者阅读,欢迎大家共同探讨交流。 关于定义的文字解释可以搜索相关概念,在这里,我们来结合简单的代码来看一下形参和实参的定义: 说的通俗一点就是函数...
  • 1,声明时给形参默认值 2,定义时给形参默认值 形参给默认值时,可不可以重复给?或者说多次给,给相同的默认值会怎么样? 相同默认值时 不同时 所以说,形参给默认值时,不管是定义出给,还是声明处给,形参默认值...
  • 4、对于h,i理解,即便是指针的传递,形参也是产生同样的有个指针副本与实参指针对应,这样形参的指针的变化与实参无关了。 **总结**: 值传递时,对象(非指针)实参会有对应形参副本产生,函数退栈是,副本一起...
  • C++形参&实参区别

    2018-03-01 20:20:45
    形参实参区别
  • 形参和实参是什么 书本的知识我就不说了,你可以这么理解,在函数花括号以内定义的的是实参,函数的参数是形参 例: Examle(int x,int y){ int t; } 这里x和y就是形参,t是实参
  • C++形参和实参

    2011-10-02 13:54:21
    实参:实在参数简称实参,每一个实参是一个表达式 。 形参:形式参数简称形参,每一个形参是一个变量。
  • 形参初始化顺序从右向左,析构与构造顺序相反 由于是栈空间所以,先构造后析构,后构造先析构。 测试代码: #include <iostream> using namespace std; class Test { public: Test(int); Test(Test&); ...
  • C++中,函数的形参,什么时候使用引用?什么时候使用指针?什么时候使用按值传递? 1 对于使用传递的值而不做修改的函数 (1)数据对象较小,如内置数据类型或小型结构体,则按值传递 void func(int ); (2)数据...
  • 2.当传值调用时,改变的是形参的值,并没有改变实参的值,实参的值可以传递给形参,但是,这个传递是单向的,形参不能传递回实参。 3.当引用调用时,如果参数是对象,无论对对象做了何种操作,都不会改变实参对象的...
  • 形参里,*&是指针的引用,它可以修改指针里存的地址,也可以按照C的方法修改指针指向的内存区域里的值,而*是一级指针,它只能做到修改指向的内存区域的值,改不了这个指针里存的地址。 一段简单的代码就能理解...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,576
精华内容 3,830
关键字:

c++形参

c++ 订阅