C++参数传递

来源:互联网 发布:java中的super方法 编辑:程序博客网 时间:2024/06/16 11:32

函数返回值的类型

函数的返回值不可以是数组类型函数类型

可以是指向数组或者函数的指针

对局部静态变量的理解

通常情况下,函数块内的普通局部变量是一种自动对象,他们在函数的控制路径经过变量定义语句的时候创建,在定义所在块的末尾销毁。但是,某些时候,我们需要令局部变量的生命周期贯穿函数调用及之后的时间,这个时候,可以将局部变量定义为staticl类型,它在程序执行路径第一次经过定义时初始化,在程序执行终止的时候销毁,在此期间,及时对象所在函数执行结束也不会产生影响。

形参传递

  • 1)传引用调用,使用引用传递参数,可以避免拷贝,比如对于string这种通常比较长的对象,传递引用可以避免strign的拷贝,若在引用时无需改变string的内容,则可以把形参定义为常量的引用
  • 2)传值调用,实参的值被拷贝到形参,形参和实参是两个相互独立的对象
  • 指针形参的理解
    :指针形参也是传值调用。当执行指针拷贝操作的时候,拷贝的是指针的值。拷贝之后,两个指针是不同的指针。因为指针使我们可以间接的访问它指向的对象,所以通过指针可以修改它所指向的对象
//函数接受一个指针,并将指针所指的位置置为0void reset(int* ip){    *ip=0;//改变ip指针指向对象的值    ip=0//改变ip的局部拷贝,实参并未改变}//调用函数int i = 42;reset(&i);//此时,改变的实i的值,而非i的地址

若想改变i的地址,需要使用指向指针的指针,参见剑指offer p56,代码中,想要改变pHead的指向,使用了指向指针的指针。

原创粉丝点击