当前位置:编程学习 > C/C++ >>

C++入门进阶之2: 函数

1.  函数在没有被调用时是静止的,此时的形参只是一个符号。 函数在被调用时才执行,也是在被调用时,才由主调函数将实参赋给形参。

 

2.  函数调用执行过程:   当程序被启动时,首先从外部存储器将代码加载到内存的代码区, 然后从入口地址(main函数的起始地址)开始执行。 程序在执行过程中,如果遇到调用其他函数,则先暂停当前函数的执行,保存下一条指令的地址作为返回地址,并保存现场, 然后转到子函数的入口地址,执行子函数。   当子函数执行完成后, 返回到主函数,恢复现场,从先前保存的指令地址开始继续执行。

 

3. 函数的参数传递:  指的就是形参和实参结合的过程, 有值调用和引用调用两种方式。

 

4. 值调用:  当发生函数调用时,给形参分配内存空间,并用实参来初始化形参,直接将实参的值传递给形参。  这个过程是参数值的单向传递过程, 此后形参的变化,不会影响到实参。

 

5. 引用调用:  引用是一种特殊类型的变量,可以被认为是另外一个变量的别名。 通过引用名与通过被引用的变量名访问变量的效果是一样的。

                     示例:   

                   int i,j:

                   int &ri = i;    //建立一个int 类型的引用,并将其初始化为变量i的一个别名

                   j = 10;

                   ri =  j;   //相当于i = j;

 

 

         使用引用必须注意:  a.  声明一个引用时,必须同时对它进行初始化,使它指向一个已经存在的对象。

b. 一旦一个引用被初始化后,就不能指向其他对象

 

         使用引用作为形参, 在函数被调用时,形参会成为实参的一个别名,对形参的任何操作就是对实参的操作。

 

 

6. 内联函数:   不是在调用时发生控制转移, 而是在编译时,就将函数体嵌入到了每一个调用的地方。

        inline  void   Func();

     内联函数注意点:  内联函数必须是功能简单,规模较小而使用频繁的函数,不能出现循环和switch等语句

                                     内联函数的定义必须在第一次使用之前

                     对内联函数不能使用异常接口声明

       编译器并不保证一定将inline的标识函数作为内联函数, 还是要根据代码而定

 

7. 默认形参函数: 必须要保证默认的形参后面不能有非默认的形参。  函数调用时,实参初始化形参的顺序是从左到右。

 

 

8.  函数重载:  两个以上的函数,具有相同的函数名,但是形参的个数或者类型不一样,编译器会根据实参和形参的类型以及个数的最佳匹配,自动确定调用哪一个函数,这就是函数重载。

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,