C语言学习笔记8——enum, sizeof,typedef

enum的分析

在C语言中:

  1. enum是一种自定义类型

  2. enum的值是可以根据需要自定义的整型值

  3. 第一个定义enum值默认为0

  4. 默认情况下的enum值是在前一个定义值的基础上加1

  5. enum类型的变量只能取定义时的离散值

enum的特殊意义:

  1. enum中定义的值是C语言中真正意义上的常量

  2. 在工程中enum多用于定义整型常量

/*
  测试程序
*/
#include 

enum                   // 无名枚举, 用于定义常量
{
    ARRAY_SIZE = 10    // 定义数组大小
};

int main(void)
{
    int i = 0;
    int array[ARRAY_SIZE] = {0};

    for(i = 0; i < ARRAY_SIZE; i++)
    {
        array[i] = i + 1;

        printf("array[%d] = %d\n", i, array[i]);
    }

    return 0;
}

sizeof关键字的分析

  1. sizeof是编译器的内置关键字

  2. sizeof用于计算类型或变量所占的内存大小

  3. sizeof的值在编译期就已经确定

sizeof用于类型 sizeof用于变量
sizeof(type) sizeof(var) 或 sizeof var

注意:sizeof是C语言内置关键字而不是函数

  1. 在编译过程中所有的sizeof将被具体的数字所替换

  2. 程序的执行过程与sizeof没有任何关系

/*测试代码*/

#include 

int main()
{
    int var = 0;

    int size = sizeof(var++);

    printf("var = %d, size = %d\n", var, size);

    return 0;
}

运行结果

var = 0, size = 4

由此得知:var++ 未被执行, sizeof(var++)在编译期就被具体的数值 4 所代替


typedef关键字分析

  1. typedef用于给一个已经存在的数据类型重命名

  2. typedef本质上不能产生新的类型

  3. typedef重命名的类型:

    • 可以在typedef语句之后定义
    • 不能被unsignedsigned修饰

用法:

typedef type new_name;

你可能感兴趣的:(C)