数据是编程中非常重要的一个概念,数据有不同的类型, 类型决定了数据如何存储以及如何操作这个数据。
1 基本类型
基本类型是最基本的数据类型, 是由C++标准库进行开发和支持的,由基本类型可以扩展出其他更复杂的复合类型。 基本类型包括int, float, double, char , 以及通过一个或多个类型修饰符(long, short, signed, unsigned )进行修饰知之后的类型。
2 复合类型
复合类型是由基本类型扩展而来, 是为了更方便和高效地组织数据而产生的。
2.1 数组
数组可以存放多个同类型的数据, 包括一维数组和多维数组。
int arr[10];
double arr1[10];
2.2 结构体(struct)
数组只能存放同类型的数据, 而结构体可以存放不同类型的数据,当然它也可以存放同类型数据, 只是不如数组简单和高效。
2.2.1 定义
结构体通过struct 关键字来进行定义。 如
struct Book {
string author;
int page;
double prices;
} book;
其中Book是结构体类型名称, book是定义的一个结构体类型的变量。 其实就类似于类的实例化。 当然在定义结构体时也可以先不实例化一个变量, 等要用到的地方的在定义。
struct Book {
string author;
int page;
double prices;
};
Book book;
2.2.2 访问
访问结构体的成员可以通过. 操作符来实现。 如想要方位author这个成员可以通过book.author 来实现。
2.2.3 指向结构体的指针
struct Book *struct_pointer=&book;
上面定义了一个指向结构体的指针, 注意定义时也需要使用struct关键字。 通过指针访问结构体的成员需要使用-> 操作符来实现。如struct_point->author 。
2.3 延伸介绍typedef
typedef是type define的简写, 作用其实就是给类型起个别名。 定义复合类型时, 通常比较冗长, 如上面定义结构体指针时, 每次都要带着struct关键字,采用typedef可以写的更简洁一些。
typedef struct Book Book;
Book *struct_pointer=&book;
上面实际上是先声明好了, 再用typedef进行改名,实际上可以在声明时直接就起别名。
typedef struct Book {
string author;
int page;
double prices;
}Book;
跟上面的效果是一样的, 只不过这么写就一步到位了。
typedef不仅限于用在结构体中, 其他地方也是可以用的。 如
typedef long int *pint32;
pin32 x, y;
typedef int my_int;
|