将结构视为数据类型是否准确?

时间:2014-12-21 09:34:30

标签: c++ c types

基于我对数据类型的理解:计算机只能存储0和1,它不能存储负数,实数,字符等。因此发明了数据类型来表示(编码)这些类型的每一种数据作为0和1的集合,然后在需要时解码。

但结构怎么样:

struct Student
{
    int age;
    float gpa;
};

Student s1; s1.age = 17; s1.gpa = 3.42;
Student s2; s2.age = 16; s2.gpa = 3.64;

这似乎就像一个设施,所以我不必写:

int student1_age = 17;
float student1_gpa = 3.42;

int student2_age = 16;
float student2_gpa = 3.64;

Student视为数据类型与我们将float视为数据类型的方式一样准确吗?

6 个答案:

答案 0 :(得分:2)

结构是不同数据类型的项的集合。所以是的,structure也是数据类型,是用户定义的。

但是你谈论负面价值观的另一部分是无法代表的。 c中有负数,这就是为什么我们有signed个整数。

也可以使用数据类型char

存储字符

structure是一个将您展示的内容分组的工具。

我希望这是一个错字,但只是修复它。结构定义的末尾应该;

答案 1 :(得分:2)

  

根据我对数据类型的理解:计算机只能存储0   和1s,它不能存储负数,实数,字符,   因此,发明了数据类型来表示(编码)这些中的每一个   数据类型为0和1的集合,然后在需要时对其进行解码。

正确。例如。 intfloat只是如何解释这些位(并且取决于HW,它需要多少位)。对于负数,十进制数等的表示,有多个已知的可能性和处理器支持对这些数据格式的计算,但这是另一个主题。

如果定义的struct是一个数据类型取决于抽象的级别(也有点意见)。在C代码中,它是一种数据类型(用于定义新变量的内容);但不是在谈论例如。 CPU内部。 ...

答案 2 :(得分:1)

int& float 算术类型统称为标量类型。其中struct类型称为聚合类型,它按顺序分配一组可能具有不同数据类型的成员对象。因此struct不亚于与标准对象类型类似的数据类型。

答案 3 :(得分:0)

结构是用于在其中集成不同数据类型成员的数据类型。并使用struct对象的声明同时声明所有成员。您还可以在其他结构中声明结构。像

struct movie
{
  string name;
  string release_date;
};

struct movie_store
{
  movie *ptr;
}

这里我使用了* ptr,其数据类型为movie,所以yes结构可以被视为数据类型

答案 4 :(得分:0)

struct X{
     char a, b;
     int count;
     float n;
};

struct book;

所以答案是肯定的。 Struct是您定义的数据类型

答案 5 :(得分:0)

  

在计算机科学和计算机编程中,数据类型或简单类型是识别各种类型数据之一的分类,例如真实,整数或布尔值,它们确定该类型的可能值;可以对该类型的值进行的操作;数据的含义;以及可以存储该类型的值的方式。 (来自Wikipedia

换句话说,数据类型告诉计算机如何解释(解释)一组给定数据,并且由于在某些情况下可以不同地(并且正确地)解释相同的数据,因此数据类型是至关重要的。在某种程度上,数据和数据类型之间的关系类似于HTMLCSS之间的关系:前者是内容,后者指定呈现(看到它时我们会看到什么)。

所以结构肯定是一种数据类型,因为它传达了我们可以用来解释一组数据的信息。

结构/数组和基本类型(intfloatbooleanchar等)之间的一个区别是结构/数组也可以告诉我们他们内部的基本类型的关系。结构中的所有变量都与结构相关,应该作为一个整体来处理。数组告诉你它的所有原子都是平行的。但是基本类型的变量只意味着存储一个独立的,简单的数学或逻辑值。