上述每种语言中的术语含义是什么?为什么这些语言在这方面有所不同(无论他们在哪里做,如果他们做的话)?C,C++,C#,Java和Python中的声明,定义,初始化
10
A
回答
11
C/C++:
一个声明是一个语句“这里是什么名称,它是型的事,但我不会告诉你这事多”。
A 定义是一个声明,说“这是什么东西的名称,它到底是什么”。对于函数,这将是函数体;对于全局变量,这将是变量所在的翻译单元。
初始化是一个定义,其中变量也被赋予一个初始值。某些语言会自动将所有变量初始化为默认值,如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变得更加松懈,因为变量在使用之前不需要声明。由于绑定在运行时被解析,所以也不需要声明函数。
相关问题
- 1. c声明和初始化
- 2. C++:变量声明初始化顺序
- 3. 在C++中使用&&的声明和初始化
- 4. C++如何声明和初始化类中的向量
- 5. 声明和初始化在java中
- 6. 在C++中声明C ==定义?
- 7. C#初始化像Java
- 8. C++,而内部声明和初始化变量循环
- 9. C++变量声明和初始化规则
- 10. Java - 对象声明和初始化
- 11. C++初始化
- 12. c#初始化
- 13. C++中的未初始化引用(使用extern声明)
- 14. Vb.net声明和初始化
- 15. 初始化字符数组 - C和C++
- 16. 自定义C++声明宏
- 17. 联盟初始化++和C
- 18. 是“int a;” C和C++中的声明或定义?
- 19. C固定变量和初始化
- 20. 指针声明,但未初始化的变量用C
- 21. extern声明和定义用C
- 22. C++荚初始化
- 23. VECTOR初始化C++
- 24. 初始化在C++
- 25. C++值初始化
- 26. C++ - 初始化与骨料初始化
- 27. 如何在C#的Visual Studio专业版2008中声明和初始化ArrayList
- 28. 用于c中变量声明和初始化的正则表达式#
- 29. Python的C-API对象初始化
- 30. 在C++初始化之前声明一个对象
听起来像是对我功课。否则,为什么你想知道这些差异? – 2008-11-21 19:14:10