• c 声明、定义、初始化的差别


    在C语言中,声明(declaration)、定义(definition)和初始化(initialization)是三个重要的概念,它们之间有一些明显的差别。以下是它们之间的主要区别:

    声明(Declaration)

    声明是告诉编译器某个变量或函数的名字和类型,但并不为变量分配内存空间,也不为函数提供具体的实现。它仅仅是一个声明,告诉编译器“这里有这么一个东西”。

    例如,声明一个整型变量和一个函数:

    extern int x; // 声明一个整型变量x,但不在当前文件中定义
    void foo(int); // 声明一个函数foo,它接受一个整型参数并返回void

    在这个例子中,extern int x; 是一个变量声明,它告诉编译器在其他地方(可能是另一个源文件中)有一个名为 x 的整型变量。而 void foo(int); 是一个函数声明,它告诉编译器存在一个名为 foo 的函数,该函数接受一个整型参数并返回 void

    定义(Definition)

    定义是为变量分配内存空间(对于变量),或者为函数提供具体的实现(对于函数)。它包含了变量或函数的所有必要信息,包括名字、类型、初始值(对于变量)以及函数的实现体(对于函数)。

    例如,定义一个整型变量和一个函数:

    int x = 0; // 定义并初始化一个整型变量x
    void foo(int y) {
    printf("%d\n", y);
    } // 定义函数foo,它接受一个整型参数y并打印它

    在这个例子中,int x = 0; 是一个变量定义,它定义了一个名为 x 的整型变量,并初始化为 0。而 void foo(int y) {...} 是一个函数定义,它提供了函数 foo 的具体实现。

    初始化(Initialization)

    初始化是为变量分配一个初始值。这通常在变量定义时完成,但也可以在变量定义后的某个时间点进行。

    例如:

    int x = 0; // 定义并初始化一个整型变量x
    int y; // 定义整型变量y,但没有初始化(它有一个不确定的值)
    y = 5; // 初始化变量y

    在这个例子中,int x = 0; 是定义并初始化变量 x 的示例,而 int y; 仅仅是定义变量 y,没有初始化。然后,y = 5; 是在定义后初始化变量 y 的示例。

    总结

    • 声明:告诉编译器某个变量或函数的存在和类型,但不分配内存或提供实现。
    • 定义:为变量分配内存空间或提供函数的实现体。对于变量,定义通常包括初始化。
    • 初始化:为变量分配一个初始值。这可以在定义时完成,也可以在定义后的某个时间点进行。
  • 相关阅读:
    python基础知识(1)
    ubuntu22.04下hadoop3.3.6+hbase2.5.6+phoenix5.1.3开发环境搭建
    男孩姓卜取什么名字好听
    三台centos7部署redis6.2版本集群
    【MATLAB】 02 结构化程序与自定义函数
    【校招VIP】项目分析之产品的优势与不足
    C++函数如何具有多个返回值?
    【Java面经】阿里三面被挂、幸获内推,历经5轮终于拿到口碑offer
    [附源码]计算机毕业设计JAVA校园淘宝节系统
    深入解析PHP框架:Symfony框架详解与应用
  • 原文地址:https://blog.csdn.net/xie__jin__cheng/article/details/139273799