⑴ 数据库里什么数据类型能存放数组
1.char 和nchar 当填入数据为空时,数据库自动使用全空格来代替,从而使not null形同虚设。所以如果字段不能为空,一定要在程序中提前判断。
2.char 和nchar因为长度固定,据说读写的速度要比 varchar和nvarchar快 .
大概有25 种数据类型:
Binary [(n)],Varbinary [(n)],Char[(n)],Varchar[(n)],Nchar[(n)],Nvarchar[(n)],Datetime,Smalldatetime,Decimal[(p[,s])],Numeric[(p[,s])],Float[(n)],Real,Int,Smallint,Tinyint,Money,Smallmoney,Bit,CursorSysname,Timestamp,Uniqueidentifier,Text,Image,Ntext。
⑵ 数组是不是数据类型如果是,是什么数据类型
C/C++中数组是内置的数据类型,但不是基础数据类型而是构造数据类型,语义上是有限个占据连续物理空间的相同数据元素的有序集合。C/C++数组在语言特性上的支持很简单,对应定义的形式T[n] a = {初始化列表};,实际进行的是分配sizeof(T)*n字节的空间,然后使这些空间内的值等于初始化列表中的值而已。分配的空间的回收是隐式的(对于自动变量是在函数结尾,对于静态变量是在进程结束),不需语言使用者干预。动态的线性表或者称为动态数组的数据结构不被C/C++语言特性直接支持,一般通过指针+长度手动调用库函数分配/释放空间,但同样可以通过[]运算符来实现引用其中的元素。对于[],如果不考虑重载,a[x]等价于*(a+x),其中a作为地址,而x是整数偏移量,实质工作(寻址)交给CPU完成。从目标代码的指令数量来考虑,这个操作的时间复杂度是O(1)(常量时间),也就是和a与x的值无关(所谓“瞬间”)。作为程序员来说无法通过C/C++语言本身来干涉这个过程。如果要实现类似的功能,例如封装一个array类,C++中可以通过重载[]运算符来实现,在实现的内部也调用了作用于指针的*、+或者[],并且一般来说,这个实现的复杂度也是O(1)的。
====
[原创回答团]