梅毒是什么| kda是什么单位| 揾什么意思| 家里为什么会有蜘蛛| 梦见钱是什么预兆| 什么不见| 舀水是什么意思| 医院有什么科室| 生姜什么时候种| jeep是什么意思| 血压表什么牌子的好最准确最耐用| 乜贴是什么意思| vana是什么牌子| 飞蚊症是什么症状| 火气重喝什么茶| 捡到狗狗代表什么预兆| 长生香是什么意思| 惊蛰吃什么| 感性的人是什么意思| ITIB跟薇娅什么关系| 白玉蜗牛吃什么| 滑膜炎用什么药治疗最好最快| 支原体感染是什么引起的| 想吐吃什么药可以缓解| 吃什么排宿便清肠彻底| 黄体功能不全是什么意思| 什么人容易得老年痴呆| 女人吃善存有什么好处| 舌苔厚是什么原因引起的| 袋鼠属于什么类动物| 为什么十五的月亮十六圆| 皮肤黑的人穿什么颜色的衣服好看| 什么水没有鱼| 维生素b2有什么功效| 口腔溃疡吃什么药好| 鸡黍是什么意思| 明目退翳什么意思| 梦见黑山羊是什么预兆| 牙齿里面疼是什么原因| 人中黄是什么| 正部级是什么级别| 什么样的女人性欲强| 杨桃什么季节成熟| 明胶是什么| 刘邦和刘备什么关系| 脑血栓是什么意思| 家里养什么动物吃蟑螂| 梦到被蛇咬是什么意思周公解梦| fan什么意思| 蒙古族的那达慕大会是在什么时候| 拉肚子用什么药| 炒木耳为什么会炸锅| 水印是什么| 大腿肌肉跳动是什么原因| 哗众取宠是什么意思| 龙吃什么| 失恋什么意思| 高血压是什么原因造成的| 猥琐男是什么意思| 大便不规律是什么原因| 丙字五行属什么| category是什么意思| 落户是什么意思| 女性白带多吃什么药| 味淋是什么东西| 特需门诊和专家门诊有什么区别| 慈母手中线的下一句是什么| a型血和ab型血生的孩子是什么血型| 心服口服是什么意思| 被虫咬了挂什么科| 什么是太岁| 肠子长息肉有什么症状| 白气是什么物态变化| 改姓氏需要什么手续| 小孩子头发黄是什么原因| mw是什么意思| 味淋可以用什么代替| 孕早期头疼是什么原因| 咳嗽吃什么药最好| 什么是简历| 泓字五行属什么| 凶神宜忌是什么意思| 脸上出油多是什么原因| 皂角米有什么功效| 耳鸣是什么原因导致的| 治疗荨麻疹用什么药最好| itp是什么意思| 哺乳期吃什么食物好| 晚上经常做梦是什么原因| 什么叫不动产| 尿结石挂什么科| 独家记忆是什么意思| 什么减肥有效| 摩羯前面是什么星座| 侬是什么意思| 你为什么不说话歌词| 尿微肌酐比值高是什么情况| 今天买什么股票| 什么的南瓜| 庭字五行属什么| 施教区是什么意思| 看近视眼挂什么科| 眼睛有血丝是什么原因| 佛跳墙是什么菜| 风热感冒 吃什么| 男龙和什么生肖最配| 备注什么意思| 怎么知道自己什么血型| 本命年为什么要穿红色| 什么的梦想| 奕五行属什么| 乙肝抗体阳性什么意思| 眼睛干涩发痒用什么药| 什么工作最赚钱| 踩雷是什么意思| 阴阳怪气是什么意思| 转氨酶高说明什么| 梦见下雪了是什么意思| 子宫内膜薄是什么原因造成的| 什么血型不招蚊子| 总蛋白偏低是什么原因| 一岁宝宝流鼻涕吃什么药| 促甲状腺激素偏高有什么症状| 减肥吃什么最好| 女性尿路感染有什么症状| 孙楠留什么给你| 多吃黑芝麻有什么好处| 知世故而不世故是什么意思| 孕妇吃什么水果对胎儿好| 骨加客念什么| 什么是阳虚| 为什么会突发脑溢血| 日本牛郎是干什么的| 好吃懒做的动物是什么生肖| 大汗淋漓是什么意思| 姑奶奶的老公叫什么| 辅助治疗是什么意思| 市政协秘书长是什么级别| autumn什么意思| 字是什么结构| 牙龈肿痛吃什么水果| 乌龟能吃什么水果| 人类免疫缺陷病毒是什么| 倒春寒是什么意思| 桃李满天下是什么生肖| cachecache是什么牌子| bdp是什么意思| 伏天从什么时候开始| 情愫是什么意思| 直肠ca是什么意思| 耳后有痣代表什么| kate是什么意思| resp是什么| 一什么窗| 金丝玉是什么玉| 胎盘1级什么意思| 舌头溃疡用什么药| 触霉头是什么意思| 术后引流管什么时间可以拔| 6月17日什么星座| 牛油果不能和什么一起吃| 奶粉罐可以做什么手工| 茄子和什么相克| 1963年五行属什么| 瑶字五行属什么| 补钾吃什么药| 三月一日是什么星座| 湿邪是什么意思| 翠是什么颜色| 甲减要多吃什么食物好| 泄泻是什么意思| 野生黄芪长什么样子的图片| DHL是什么| pct是什么材质| 自己开店做什么赚钱| 核黄素是什么| 间接胆红素高是什么原因| 脚趾甲变厚是什么原因| 卵巢分泌什么激素| 护理主要学什么| 短裤搭配什么鞋子| 子午是什么时间| 耳朵上长痣代表什么| 痛风吃什么蔬菜| 腱鞘炎吃什么药最好| 臁疮是什么病| 白细胞低有什么危险| 曝光是什么意思| 洋葱与什么食物相克| 糯叽叽什么意思| 生长激素是什么| 掉筷子有什么预兆| 刮痧板什么材质的好| 我丢什么意思| 普洱茶什么牌子好| 七月十日是什么日子| 喝酒胃出血吃什么药| 房颤用什么药| 经期延长是什么原因引起的| 中国红是什么颜色| ltp是什么意思| 大便恶臭是什么原因| 玹字五行属什么| 牡丹花什么时候开| 吃小龙虾不能和什么一起吃| 脖子上长小肉粒是什么| 科目三为什么这么难| 女人是什么动物| 屁股上长痘痘是什么情况| 2017什么年| original是什么牌子| 子宫囊肿有什么症状| 药流用什么药| 鸿运当头是什么菜| 专升本有什么专业| 7月中旬是什么时候| 天克地冲是什么意思| TA什么意思| 肠道湿热吃什么药| 梦见爸爸去世预兆什么| 什么是有氧运动| 六月初一是什么日子| 牛肉和什么菜包饺子好吃| 打hcg针有什么作用| hcg翻倍慢是什么原因| 盲人按摩有什么好处| 水痘挂什么科| pet什么意思| 东北易帜是什么意思| 尤文氏肉瘤是什么病| 哺乳期什么时候来月经正常| 铁路12306什么时候放票| 自缢什么意思| 维生素b吃多了有什么副作用| 手上有痣代表什么| 流注是什么意思| 女人是什么意思| 金国人是现在的什么人| 什么是疱疹| 鸟屎掉头上有什么预兆| 打完狂犬疫苗有什么不良反应| 帕金森挂什么科| 基质是什么| ab型血为什么容易得精神病| 陈皮为什么越陈越好| 小仙女是什么意思| 经期吃什么好排除瘀血| 贝贝什么意思| 治甲沟炎用什么药膏好| 感冒流鼻涕咳嗽吃什么药好| 载脂蛋白b偏低是什么意思| 胎盘后壁是什么意思| cd是什么意思啊| 家有一老如有一宝是什么意思| 盐酸氯米帕明片有什么作用| 只要睡觉就做梦是什么原因| 金榜题名是什么生肖| 6.26是什么星座| pm是什么单位| 生肖龙和什么生肖相冲| 虫草花不能和什么一起吃| 一厢情愿指什么生肖| 闭关是什么意思| 58年属什么今年多大| 百度

次新股回暖 30只低估值高增长股具高送转潜力

百度 火箭军工程大学校长刘光斌、政治委员陈洪珂等参加。

In computer science and computer programming, a data type (or simply type) is a collection or grouping of data values, usually specified by a set of possible values, a set of allowed operations on these values, and/or a representation of these values as machine types.[1] A data type specification in a program constrains the possible values that an expression, such as a variable or a function call, might take. On literal data, it tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support basic data types of integer numbers (of varying sizes), floating-point numbers (which approximate real numbers), characters and Booleans.[2][3]

The standard type hierarchy of Python 3

Concept

edit

A data type may be specified for many reasons: similarity, convenience, or to focus the attention. It is frequently a matter of good organization that aids the understanding of complex definitions. Almost all programming languages explicitly include the notion of data type, though the possible data types are often restricted by considerations of simplicity, computability, or regularity. An explicit data type declaration typically allows the compiler to choose an efficient machine representation, but the conceptual organization offered by data types should not be discounted.[4]

Different languages may use different data types or similar types with different semantics. For example, in the Python programming language, int represents an arbitrary-precision integer which has the traditional numeric operations such as addition, subtraction, and multiplication. However, in the Java programming language, the type int represents the set of 32-bit integers ranging in value from ?2,147,483,648 to 2,147,483,647, with arithmetic operations that wrap on overflow. In Rust this 32-bit integer type is denoted i32 and panics on overflow in debug mode.[5]

Most programming languages also allow the programmer to define additional data types, usually by combining multiple elements of other types and defining the valid operations of the new data type. For example, a programmer might create a new data type named "complex number" that would include real and imaginary parts, or a color data type represented by three bytes denoting the amounts each of red, green, and blue, and a string representing the color's name.

Data types are used within type systems, which offer various ways of defining, implementing, and using them. In a type system, a data type represents a constraint placed upon the interpretation of data, describing representation, interpretation and structure of values or objects stored in computer memory. The type system uses data type information to check correctness of computer programs that access or manipulate the data. A compiler may use the static type of a value to optimize the storage it needs and the choice of algorithms for operations on the value. In many C compilers the float data type, for example, is represented in 32 bits, in accord with the IEEE specification for single-precision floating point numbers. They will thus use floating-point-specific microprocessor operations on those values (floating-point addition, multiplication, etc.).

Definition

edit

Parnas, Shore & Weiss (1976) identified five definitions of a "type" that were used—sometimes implicitly—in the literature:

Syntactic
A type is a purely syntactic label associated with a variable when it is declared. Although useful for advanced type systems such as substructural type systems, such definitions provide no intuitive meaning of the types.
Representation
A type is defined in terms of a composition of more primitive types—often machine types.
Representation and behaviour
A type is defined as its representation and a set of operators manipulating these representations.
Value space
A type is a set of possible values which a variable can possess. Such definitions make it possible to speak about (disjoint) unions or Cartesian products of types.
Value space and behaviour
A type is a set of values which a variable can possess and a set of functions that one can apply to these values.

The definition in terms of a representation was often done in imperative languages such as ALGOL and Pascal, while the definition in terms of a value space and behaviour was used in higher-level languages such as Simula and CLU. Types including behavior align more closely with object-oriented models, whereas a structured programming model would tend to not include code, and are called plain old data structures.

Classification

edit

Data types may be categorized according to several factors:

  • Primitive data types or built-in data types are types that are built-in to a language implementation. User-defined data types are non-primitive types. For example, Java's numeric types are primitive, while classes are user-defined.
  • A value of an atomic type is a single data item that cannot be broken into component parts. A value of a composite type or aggregate type is a collection of data items that can be accessed individually.[6] For example, an integer is generally considered atomic, although it consists of a sequence of bits, while an array of integers is certainly composite.
  • Basic data types or fundamental data types are defined axiomatically from fundamental notions or by enumeration of their elements. Generated data types or derived data types are specified, and partly defined, in terms of other data types. All basic types are atomic.[7] For example, integers are a basic type defined in mathematics, while an array of integers is the result of applying an array type generator to the integer type.

The terminology varies - in the literature, primitive, built-in, basic, atomic, and fundamental may be used interchangeably.[8]

Examples

edit

Machine data types

edit

All data in computers based on digital electronics is represented as bits (alternatives 0 and 1) on the lowest level. The smallest addressable unit of data is usually a group of bits called a byte (usually an octet, which is 8 bits). The unit processed by machine code instructions is called a word (as of 2025, typically 64 bits).

Machine data types expose or make available fine-grained control over hardware, but this can also expose implementation details that make code less portable. Hence machine types are mainly used in systems programming or low-level programming languages. In higher-level languages most data types are abstracted in that they do not have a language-defined machine representation. The C programming language, for instance, supplies types such as Booleans, integers, floating-point numbers, etc., but the precise bit representations of these types are implementation-defined. The only C type with a precise machine representation is the char type that represents a byte.[9]

Boolean type

edit

The Boolean type represents the values true and false. Although only two values are possible, they are more often represented as a byte or word rather as a single bit as it requires more machine instructions to store and retrieve an individual bit. Many programming languages do not have an explicit Boolean type, instead using an integer type and interpreting (for instance) 0 as false and other values as true. Boolean data refers to the logical structure of how the language is interpreted to the machine language. In this case a Boolean 0 refers to the logic False. True is always a non zero, especially a one which is known as Boolean 1.

Numeric types

edit

Almost all programming languages supply one or more integer data types. They may either supply a small number of predefined subtypes restricted to certain ranges (such as short and long and their corresponding unsigned variants in C/C++); or allow users to freely define subranges such as 1..12 (e.g. Pascal/Ada). If a corresponding native type does not exist on the target platform, the compiler will break them down into code using types that do exist. For instance, if a 32-bit integer is requested on a 16 bit platform, the compiler will tacitly treat it as an array of two 16 bit integers.

Floating point data types represent certain fractional values (rational numbers, mathematically). Although they have predefined limits on both their maximum values and their precision, they are sometimes misleadingly called reals (evocative of mathematical real numbers). They are typically stored internally in the form a × 2b (where a and b are integers), but displayed in familiar decimal form.

Fixed point data types are convenient for representing monetary values. They are often implemented internally as integers, leading to predefined limits.

For independence from architecture details, a Bignum or arbitrary precision numeric type might be supplied. This represents an integer or rational to a precision limited only by the available memory and computational resources on the system. Bignum implementations of arithmetic operations on machine-sized values are significantly slower than the corresponding machine operations.[10]

Enumerations

edit

The enumerated type has distinct values, which can be compared and assigned, but which do not necessarily have any particular concrete representation in the computer's memory; compilers and interpreters can represent them arbitrarily. For example, the four suits in a deck of playing cards may be four enumerators named CLUB, DIAMOND, HEART, SPADE, belonging to an enumerated type named suit. If a variable V is declared having suit as its data type, one can assign any of those four values to it. Some implementations allow programmers to assign integer values to the enumeration values, or even treat them as type-equivalent to integers.

String and text types

edit

Strings are a sequence of characters used to store words or plain text, most often textual markup languages representing formatted text. Characters may be a letter of some alphabet, a digit, a blank space, a punctuation mark, etc. Characters are drawn from a character set such as ASCII or Unicode. Character and string types can have different subtypes according to the character encoding. The original 7-bit wide ASCII was found to be limited, and superseded by 8, 16 and 32-bit sets, which can encode a wide variety of non-Latin alphabets (such as Hebrew and Chinese) and other symbols. Strings may be of either variable length or fixed length, and some programming languages have both types. They may also be subtyped by their maximum size.

Since most character sets include the digits, it is possible to have a numeric string, such as "1234". These numeric strings are usually considered distinct from numeric values such as 1234, although some languages automatically convert between them.

Union types

edit

A union type definition will specify which of a number of permitted subtypes may be stored in its instances, e.g. "float or long integer". In contrast with a record, which could be defined to contain a float and an integer, a union may only contain one subtype at a time.

A tagged union (also called a variant, variant record, discriminated union, or disjoint union) contains an additional field indicating its current type for enhanced type safety.

Algebraic data types

edit

An algebraic data type (ADT) is a possibly recursive sum type of product types. A value of an ADT consists of a constructor tag together with zero or more field values, with the number and type of the field values fixed by the constructor. The set of all possible values of an ADT is the set-theoretic disjoint union (sum), of the sets of all possible values of its variants (product of fields). Values of algebraic types are analyzed with pattern matching, which identifies a value's constructor and extracts the fields it contains.

If there is only one constructor, then the ADT corresponds to a product type similar to a tuple or record. A constructor with no fields corresponds to the empty product (unit type). If all constructors have no fields then the ADT corresponds to an enumerated type.

One common ADT is the option type, defined in Haskell as data Maybe a = Nothing | Just a.[11]

Data structures

edit

Some types are very useful for storing and retrieving data and are called data structures. Common data structures include:

  • An array (also called vector, list, or sequence) stores a number of elements and provides random access to individual elements. The elements of an array are typically (but not in all contexts) required to be of the same type. Arrays may be fixed-length or expandable. Indices into an array are typically required to be integers (if not, one may stress this relaxation by speaking about an associative array) from a specific range (if not all indices in that range correspond to elements, it may be a sparse array).
  • Record (also called tuple or struct) Records are among the simplest data structures. A record is a value that contains other values, typically in fixed number and sequence and typically indexed by names. The elements of records are usually called fields or members.
  • An object contains a number of data fields, like a record, and also offers a number of subroutines for accessing or modifying them, called methods.
  • the singly linked list, which can be used to implement a queue and is defined in Haskell as the ADT data List a = Nil | Cons a (List a), and
  • the binary tree, which allows fast searching, and can be defined in Haskell as the ADT data BTree a = Nil | Node (BTree a) a (BTree a)[12]

Abstract data types

edit

An abstract data type is a data type that does not specify the concrete representation of the data. Instead, a formal specification based on the data type's operations is used to describe it. Any implementation of a specification must fulfill the rules given. For example, a stack has push/pop operations that follow a Last-In-First-Out rule, and can be concretely implemented using either a list or an array. Abstract data types are used in formal semantics and program verification and, less strictly, in design.

Pointers and references

edit

The main non-composite, derived type is the pointer, a data type whose value refers directly to (or "points to") another value stored elsewhere in the computer memory using its address. It is a primitive kind of reference. (In everyday terms, a page number in a book could be considered a piece of data that refers to another one). Pointers are often stored in a format similar to an integer; however, attempting to dereference or "look up" a pointer whose value was never a valid memory address would cause a program to crash. To ameliorate this potential problem, a pointer type is typically considered distinct from the corresponding integer type, even if the underlying representation is the same.

Function types

edit

Functional programming languages treat functions as a distinct datatype and allow values of this type to be stored in variables and passed to functions. Some multi-paradigm languages such as JavaScript also have mechanisms for treating functions as data.[13] Most contemporary type systems go beyond JavaScript's simple type "function object" and have a family of function types differentiated by argument and return types, such as the type Int -> Bool denoting functions taking an integer and returning a Boolean. In C, a function is not a first-class data type but function pointers can be manipulated by the program. Java and C++ originally did not have function values but have added them in C++11 and Java 8.

Type constructors

edit

A type constructor builds new types from old ones, and can be thought of as an operator taking zero or more types as arguments and producing a type. Product types, function types, power types and list types can be made into type constructors.

Quantified types

edit

Universally-quantified and existentially-quantified types are based on predicate logic. Universal quantification is written as   or forall x. f x and is the intersection over all types x of the body f x, i.e. the value is of type f x for every x. Existential quantification written as   or exists x. f x and is the union over all types x of the body f x, i.e. the value is of type f x for some x.

In Haskell, universal quantification is commonly used, but existential types must be encoded by transforming exists a. f a to forall r. (forall a. f a -> r) -> r or a similar type.

Refinement types

edit

A refinement type is a type endowed with a predicate which is assumed to hold for any element of the refined type. For instance, the type of natural numbers greater than 5 may be written as  

Dependent types

edit

A dependent type is a type whose definition depends on a value. Two common examples of dependent types are dependent functions and dependent pairs. The return type of a dependent function may depend on the value (not just type) of one of its arguments. A dependent pair may have a second value of which the type depends on the first value.

Intersection types

edit

An intersection type is a type containing those values that are members of two specified types. For example, in Java the class Boolean implements both the Serializable and the Comparable interfaces. Therefore, an object of type Boolean is a member of the type Serializable & Comparable. Considering types as sets of values, the intersection type   is the set-theoretic intersection of   and  . It is also possible to define a dependent intersection type, denoted  , where the type   may depend on the term variable  .[14]

Meta types

edit

Some programming languages represent the type information as data, enabling type introspection and reflective programming (reflection). In contrast, higher order type systems, while allowing types to be constructed from other types and passed to functions as values, typically avoid basing computational decisions on them.[citation needed]

Convenience types

edit

For convenience, high-level languages and databases may supply ready-made "real world" data types, for instance times, dates, and monetary values (currency).[15][16] These may be built-in to the language or implemented as composite types in a library.[17]

See also

edit

References

edit
  1. ^ Parnas, Shore & Weiss 1976.
  2. ^ type at the Free On-line Dictionary of Computing
  3. ^ Shaffer, C. A. (2011). Data Structures & Algorithm Analysis in C++ (3rd ed.). Mineola, NY: Dover. 1.2. ISBN 978-0-486-48582-9.
  4. ^ Scott, Dana (September 1976). "Data Types as Lattices". SIAM Journal on Computing. 5 (3): 540–541. doi:10.1137/0205037.
  5. ^ "Rust RFCs - Integer Overflow". The Rust Programming Language. 12 August 2022.
  6. ^ Dale, Nell B.; Weems, Chip; Headington, Mark R. (1998). Programming in C++. Jones & Bartlett Learning. p. 349. ISBN 978-0-7637-0537-4.
  7. ^ ISO/IEC 11404, 6.4
  8. ^ BHATNAGAR, SEEMA (19 August 2008). TEXTBOOK OF COMPUTER SCIENCE FOR CLASS XI. PHI Learning Pvt. Ltd. p. 182. ISBN 978-81-203-2993-5.
  9. ^ "SC22/WG14 N2176" (PDF). Wayback Machine. Section 6.2.6.2. Archived from the original (PDF) on 30 December 2018. Which of [sign and magnitude, two's complement, one's complement] applies is implementation-defined
  10. ^ "Integer benchmarks — mp++ 0.27 documentation". bluescarni.github.io.
  11. ^ "6 Predefined Types and Classes". www.haskell.org. Retrieved 2025-08-06.
  12. ^ Suresh, S P. "Programming in Haskell: Lecture 22" (PDF). Chennai Mathematical Institute. Retrieved 10 August 2022.
  13. ^ Flanagan, David (1997). "6.2 Functions as Data Types". JavaScript: the definitive guide (2nd ed.). Cambridge: O'Reilly & Associates. ISBN 9781565922341.
  14. ^ Kopylov, Alexei (2003). "Dependent intersection: A new way of defining records in type theory". 18th IEEE Symposium on Logic in Computer Science. LICS 2003. IEEE Computer Society. pp. 86–95. CiteSeerX 10.1.1.89.4223. doi:10.1109/LICS.2003.1210048.
  15. ^ West, Randolph (27 May 2020). "How SQL Server stores data types: money". Born SQL. Retrieved 28 January 2022. Some time ago I described MONEY as a "convenience" data type which is effectively the same as DECIMAL(19,4), [...]
  16. ^ "Introduction to data types and field properties". support.microsoft.com. Retrieved 28 January 2022.
  17. ^ Wickham, Hadley (2017). "16 Dates and times". R for data science: import, tidy, transform, visualize, and model data. Sebastopol, CA. ISBN 978-1491910399. Retrieved 28 January 2022.{{cite book}}: CS1 maint: location missing publisher (link)

Further reading

edit
edit
什么炒蛋好吃 211和985什么意思 6月24日是什么日子 手心干燥是什么原因 右肺下叶纤维灶是什么意思
热感冒有什么症状 神机妙算是什么生肖 血小板下降是什么原因 4月28号是什么星座 什么是燕麦
蟑螂的天敌是什么 romoss是什么牌子 蹭饭是什么意思 XX是什么意思 7.8什么星座
吃什么可以变白 为什么会过敏 揩是什么意思 天秤女喜欢什么样的男生 梦见捉黄鳝是什么意思
4月6号是什么星座hcv8jop8ns4r.cn 实诚是什么意思hcv9jop5ns9r.cn 夜宵吃什么好hcv7jop9ns7r.cn 抗生素是什么hcv9jop6ns4r.cn 二杠四星是什么军衔hcv7jop5ns0r.cn
黄瓜炒什么菜好吃hcv9jop2ns2r.cn 血糖的单位是什么hcv8jop7ns4r.cn 指甲竖纹是什么原因hcv9jop0ns9r.cn 胆气虚吃什么中成药hcv9jop3ns9r.cn 物以类聚什么意思hcv8jop6ns5r.cn
4.29是什么星座hcv8jop3ns5r.cn 友尽是什么意思xjhesheng.com 气阴两虚吃什么药hcv9jop0ns0r.cn 长期玩手机会得什么病hcv9jop3ns8r.cn 窦性心动过缓是什么意思bfb118.com
绽开什么hcv8jop6ns9r.cn 为什么会得脑血栓hcv8jop8ns8r.cn 牛肉和什么菜包饺子好吃hcv9jop5ns8r.cn 莼菜是什么菜hcv9jop6ns7r.cn 早睡有什么好处hcv9jop4ns0r.cn
百度