c中和java中数组的区别
来源:互联网 发布:京东金融数据大赛 编辑:程序博客网 时间:2024/05/16 01:24
对于原语类型的数组,如int[] a,在C里面只要这样定义之后就可以用a[i]使用了,但是在JAVA里面是不行的,必须用int[] a = new int[LENGTH];来为数组分配空间。这里的a更应该看成C里面的指针,它和C里面的int* a是一样的,因为这个a(C里面的)也要先malloc一个空间之后才可以用。
对于对象数组,则要“两次分配”,如:
Object[] obj = new Object[2];
obj[0] = new Object();
obj[1] = new Object();
因为数组首先是一个句柄,而这个句柄指向的2个空间里面又是存储着两个指向Object类型的句柄。
而C里面不完全相同:
struct Object{};
struct Object* obj = (struct Object *)malloc(2 * sizeof(struct Object));
其实他们的原理大至是相同的。只不过JAVA里数组的内存分配是在堆里面的,必须用new 来分配,而C里面是在栈里面分配的,定义的时候会自动分配。
在《Thinking in JAVA》中有更详细的介绍。
java在声明数组的时候不能加数量的.只能初始化的时候加
int[] a = new int[3]; 或
int a[] = new int[3]; 都行
c语言中,声明的时候加不加数量都可以
int a[3] = {1,2,3};
int a[] = {1,2,3};
- c中和java中数组的区别
- c中和java中数组的区别
- java与c中数组的区别
- C和JAVA中数组的区别
- java数组和c中数组的区别
- java中数组和C语言数组的区别
- C中和C++中static的作用?
- java和c语言中数组定义初始化的区别
- java和c、c++中数组的区别
- java数组与c数组的区别
- C#&&Java-----C#中和Java中把主函数定义成静态成员函数的原因
- c++中和""的区别
- C中数组与指针的区别
- Java,C#,C++数组定义的区别
- golang中的数组与C中数组的区别
- c/c++中指针数组和数组指针的区别
- C语言中数组名与&数组名的区别
- c中指针数组与数组指针的区别
- spring+struts+hibernate 的整合,采用proxool连接池
- C++ 例题
- 来美一个月小记
- 自由的话
- 张小娴经典语录100句
- c中和java中数组的区别
- 一晨
- 学VC是的心得
- 用Glade和PyGTK快速开发图形应用程序快速入门
- UNIX shell学习(2)-sed
- Effective STL - 警惕c++让人懊恼的解析
- 多个spu文件写法
- mysql优化
- Fedora安装Expect