• C++数组类型与函数类型


      之所以将C++的数组类型与函数类型拿到一块说,是因为两者在很多地方都一样。

      首先,声明形式上类似:

      数组类型:  type [num]                                          数组:type name[num]

      函数类型:  return_type (形参列表)            函数:return_type name(形参列表)

      

      数组指针类型: type (*)[num]            数组指针:type (*name)[num]

      函数指针类型: return_type (*) (形参列表)      函数指针:return_type (*name)(形参列表)

      

      数组引用类型: type(&)[num]            数组引用:type(&name)[num]

      函数引用类型: return_type (&)(形参列表)      函数引用: return_type(&name)(形参列表)

      

      函数返回数组指针:type name(形参列表) [num]

      函数返回函数指针:return_type (*name(形参形表)) (返回函数的形参列表))

      

      数组、函数共同点:

      1.数组、函数都不可拷贝。

      2.因为第1点,数组、函数不可以做函数的返回值,但函数可以返回数组、函数的指针或引用。

      3.数组、函数可用于函数形参,但因为第1点,编译器会对其做处理。

        如果形参类型为数组,实际形参类型会转换成元素类型的指针,例如void fun(int arr[5])等价于 void fun(int  arr*)。

        如果形参类型为函数,实际形参类型会转换成对应的函数指针类型,例如 void fun (int test()) 等价于 void fun( int (*test)())。

      

      备注:1.数组指针类型是合法的,但无法获取数组的指针,所以无实际用途。

         2.函数类型是合法的,但其定义的对象无法初始化和赋值,只能用于声明函数指针或函数引用类型。

      

      

  • 相关阅读:
    5月读书日志
    把代码搬到Git Hub 吧(一)
    RTX二次开发(二)(基于ASP.NET)
    RTX二次开发(一)(基于ASP.NET)
    文件夹下迭代查询文件
    JS URL传递中文参数时出现乱码的处理
    js实现上下滑动侧边栏
    基本select语句的生命周期
    NodeJs下的测试框架Mocha
    带新人感想
  • 原文地址:https://www.cnblogs.com/vsuu/p/4156470.html
Copyright © 2020-2023  润新知