zoukankan      html  css  js  c++  java
  • c++之五谷杂粮---2

    2.1  我们通过调用运算符(call operator)来执行函数。调用运算符的形式是一对圆括号,它作用于一个表达式,该表达式是函数或者指向函数的指针;圆括号之内是用逗号隔开的实参列表,我们用实参初始化函数的形参。调用表达式的类型就是函数的返回类型。

     1  1 #include<iostream>
     2  2 using namespace std;
     3  3 int fuc(int a, double b)
     4  4 {
     5  5     cout<<"a= "<<a<<" "<<"b= "<<b<<endl;
     6  6     return 0;
     7  7 }
     8  8 int main(void)
     9  9 {
    10 10     int (*fuc_point)(int ,double);//int (*fuc_point)(int a ,double b); 参数名是可选的,其实编译器根本不关心参数名,只在乎参数类型
    11 11     fuc_point=fuc;//fuc_point=&fuc;这两句等效
    12 12     fuc(3,3.14);//3 3.14为实参 用该实参初始化形参a,b 调用表达式的类型fuc为int 故该函数的返回类型为int
    13 13     fuc_point(3,3.14);//这三个都可以调用函数fuc
    14 14     (*fuc_point)(3,3.14);
    15 15     return 0;
    16 16 }

    运行结果:

    Analyze:

    fuc_point=&fuc;表达式的&是可选的,因为函数名被使用时总是由编译器把它转换成函数指针,&只是显示说明了编译器讲隐式执行的任务;
    fuc_point(3,3.14);编译器需要的是一个函数指针,而fuc_point正是符合这样要求的;
    (*fuc_point)(3,3.14);先对指针进行解引用,它把函数指针转换成一个函数名。这个转换并不是真正需要的,因为编译器在执行函数调用操作符之前又会把它转换回去。
    这三者都是合法且效果相同的。

    2.2 如果局部变量没有被显示的初始化,它将执行值初始化,内置类型的静态变量初始化为0.
  • 相关阅读:
    mysql-基础和基本指令
    网络笔试面试
    Windows访问Linux下的共享目录的配置方法
    帧动画 连续播放多张图片动画 以及ui动画 SoundPool
    ScrollView listView gridView 之间的冲突问题
    handler------post传送方式
    handler通信机制
    内部存储 openFileInputStream openFileOutputStream
    popupMenu-----弹出菜单
    为系统菜单添加图标--------暴力反射
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/6384176.html
Copyright © 2011-2022 走看看