阅读:0       作者:严长生

什么是标量类型(Scalar type)

标量类型(Scalar type)是相对复合类型(Compound type)来说的:标量类型只能有一个值,而复合类型可以包含多个值。复合类型是由标量类型构成的。

在C语言中,整数类型(int、short、long等)、字符类型(char、wchar_t等)、枚举类型(enum)、小数类型(float、double等)、布尔类型(bool)都属于标量类型,一份标量类型的数据只能包含一个值。例如:
int n = 100;
char c = 'A';
n 和 c 都是标量类型的数据:n 就表示100这一个整数,c 就表示'A'这一个字符。当然,它们值可以被改变,但无论如何,它们都只能表示一个值。

结构体(struct)、数组、字符串都属于复合类型,一份复合类型的数据可以包含多个标量类型的值,也可以包含其他复合类型的值。例如:
int nums[ ] = { 5, 38, 49, 92 };

struct complex{
    double real;
    double imag
};
struct complex c1 = {12.6, 80.12};

struct stu{
    char name[20];  //姓名
    int num;  //学号
    int age;  //年龄
    float score;  //成绩
};
struct stu s1 = {"Tom", 10, 18, 95.5};
nums、c1 和 s1 都是复合类型的数据:nums 是一个数组,它包含了四个 int 类型(标量类型)的值;c1 是一个结构体变量,它包含了两个 double 类型(标量类型)的值;s1 是一个结构体变量,它除了包含三个标量类型的值,还包含了一个复合类型的值,就是数组。