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.函数类型是合法的,但其定义的对象无法初始化和赋值,只能用于声明函数指针或函数引用类型。

  

  

时间: 2024-08-26 13:43:10

C++数组类型与函数类型的相关文章

工作那些事(二十八)项目管理模式:项目类型、函数类型、矩阵

在一个项目中,,项目经理很少有正确的,能够使用哪些资源.式,项目管理模式由公司的CTO来决定. 简而言之,项目管理有三种模式:项目型.职能型.矩阵型. 以下先看看这三种模式,对项目经理来说都是什么作用. 1项目型 将全部的能兵强将集结在一起,財务部.业务部.IT管理部等的精英们脱离原有的岗位. 形成一个正式的部门,并由项目经理领导. 这种优势是项目经理的权利非常强.资源充足.全部的项目经理都希望有这种团队. 可是就公司而言.单独团队对公司总体资源的浪费.是显而易见的:对被抽调的个人而言.脱离了原

浅谈swift中的函数类型和闭包

在讲swift的函数类型之前,我们先回忆一下我们以前学的定义一个swift的函数 func add(a: Int,b: Int) -> Int { return a + b } 好了, 我们开始我们函数类型的讲解 上面这个函数的类型是(Int ,Int)->Int 使用函数类型 我们都知道, 在swift中 , 函数类型就像其他数据类型一样,也就意味着我们可以给一个函数的常量或者是变量赋值 var f2: (Int,Int)-> Int = add f2(2,3) //结果为5 好了,接

swift学习之函数类型

var someInt: Int = 7 Int 就是表示someInt的类型,同理,这个Int也可以换成函数类型,所以也可以像其他类型那样使用函数类型 函数类型主要由三种用途:(一)就是上面说的了 (二)作为参数(三)作为返回类型 再加一个,就是函数也可以嵌套(nested) let math: (Int , Int) -> Int = addTwoInts printMathResult(math, a: 9, b: 9) //printMathResult(math, 9, 9) func

IOS学习之路——Swift语言(2)——基本类型与函数

一.可选型 为什么会有可选型?当一个变量被希望表示为某一个指定的类型值,同时也被希望在某种情况下表示为空.那么就需要一个可选型.Optional 可选型的语法是在Swift的基本类型后面添加 ? 符号,如 Int? String?  可选型如果取值为空,那么表示为 nil 如果想定义一个可选型的变量,那么需要显示的声明为可选型.可选型变量打印时显示Optional 可选型变量需要进行解包(unwrap)才能与其他的变量进行运算. 解包: 1. 强制解包,使用 ! 关键字,强制解包是具有风险的,当

postgresql----JSON类型和函数

postgresql支持两种json数据类型:json和jsonb,而两者唯一的区别在于效率,json是对输入的完整拷贝,使用时再去解析,所以它会保留输入的空格,重复键以及顺序等.而jsonb是解析输入后保存的二进制,它在解析时会删除不必要的空格和重复的键,顺序和输入可能也不相同.使用时不用再次解析.两者对重复键的处理都是保留最后一个键值对.效率的差别:json类型存储快,使用慢,jsonb类型存储稍慢,使用较快. 注意:键值对的键必须使用双引号 示例: test=# SELECT '{"bar

JavaScript数据类型、类型检测函数——慕课网ArraysSimilar编程练习

基本类型 string number boolean function undefined object (null,Array,Date,window) 隐式转换与"==""===" num-string   var str=num+' ' string-num   var num=str-0 "=="进行隐式转换后判断(即判断变量里面的值) "==="直接判断(判断是不是一个东西) ( NaN!=NaN null===nu

PHP常用类型判断函数

1.gettype():获取变量类型 2.is_array():判断变量类型是否为数组类型 3.is_double():判断变量类型是否为倍浮点类型 4.is_float():判断变量类型是否为浮点类型 5.is_int():判断变量类型是否为整数类型 6.is_integer():判断变量类型是否为长整数类型 7.is_long():判断变量类型是否为长整数类型 8.is_object():判断变量类型是否为对象类型 9.is_real(): 判断变量类型是否为实数类型 10.is_strin

对数组中的对象进行升序以及降序的排序方法(其中对象类型是系统类型).

[cpp] view plaincopyprint? <span style="font-size:32px;">NSArray *arr = [[NSArray alloc] initWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee",@"ff", nil]; //1.对数组进行升序排序 //sortedArrayUsin

Swift2.0语言教程之函数的返回值与函数类型

Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有一个返回值的函数 开发者希望在函数中返回某一数据类型的值,必须要在函数声明定义时为函数设定一个返回的数据类型,并使用return语句进行返回.其中,return语句的一般表示形式如下: return 表达式 其中,表达式可以是符合Swift标准的任意表达式.而具有返回值的函数声明定义形式如下: fu