加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C,C,C#,Java和Python中的声明,定义,初始化

发布时间:2020-12-16 05:37:17 所属栏目:百科 来源:网络整理
导读:这些术语在上述各种语言中是什么意思?为什么这些语言在这方面有所不同(无论他们做什么,如果有的话) 解决方法 C/C++: 一个声明是一个声明,说“这里是一些东西的名称和事物的类型,但我不会再告诉你了”. 一个定义是一个声明,说“这里是一些东西的名称,究竟是
这些术语在上述各种语言中是什么意思?为什么这些语言在这方面有所不同(无论他们做什么,如果有的话)

解决方法

C/C++:

一个声明是一个声明,说“这里是一些东西的名称和事物的类型,但我不会再告诉你了”.

一个定义是一个声明,说“这里是一些东西的名称,究竟是什么”.对于函数,这将是函数体;对于全局变量,这将是变量所在的翻译单元.

初始化是给定一个初始值的定义.某些语言会自动将所有变量初始化为一些默认值,例如0,false或null.一些(如C/C++)在所有情况下都不是:所有全局变量都是默认初始化的,但是堆栈上的局部变量和动态分配的变量不会被默认初始化 – 它们具有未定义的内容,因此您必须显式初始化他们. C也有默认构造函数,这是一个完整的蠕虫病毒.

例子:

// In global scope:
extern int a_global_variable;  // declaration of a global variable
int a_global_variable;         // definition of a global variable
int a_global_variable = 3;     // definition & initialization of a global variable

int some_function(int param);  // declaration of a function
int some_function(int param)    // definition of a function
{
    return param + 1;
}

struct some_struct;  // declaration of a struct; you can use pointers/references to it,but not concrete instances
struct some_struct   // definition of a struct
{
    int x;
    int y;
};

class some_class;  // declaration of a class (C++ only); works just like struct
class some_class   // definition of a class (C++ only)
{
    int x;
    int y;
};

enum some_enum;  // declaration of an enum; works just like struct & class
enum some_enum   // definition of an enum
{
   VALUE1,VALUE2
};

我不熟悉你所问的其他语言,但我相信他们在声明和定义之间并没有多大区别. C#和Java具有所有对象的默认初始化 – 如果没有显式初始化,则所有对象都初始化为0,false或null. Python更加松散,因为变量在使用之前不需要被声明.由于绑定在运行时解析,所以也不需要声明函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读