发布网友 发布时间:2022-04-23 01:58
共2个回答
热心网友 时间:2022-05-21 23:20
<1>Java与C内存分配不同:
A.Java中内存分配五个区,分别为栈区(存储的是局部变量,使用完毕,立即回收),堆区(存储的是new出来的东西,实体,对象,每一个对象都有地址值,每个对象的数据都有默认值,使用完毕后,会在垃圾回收器空闲的时候回收),方法区,本地方法区(和系统相关),寄存区(给cpu使用)。
B.C中内存分配四个区,分别为栈区(存储函数参数,局部变量的值),堆区(动态内存申请与释放,若程序员不释放内存,则程序结束后可能由操作系统释放),全局区(静态区),代码区。
<2>Java数组初始化分为动态初始化和静态初始化:
A.动态初始化只给出长度,由系统给出初始化值。它的形式为:int[]arr=new int[3],(3表示一维数组中有三个元素,此时的[]被预定义为检查数组边界,没有指针运算,即不能通过a+1得到数组的下一个元素)
B.静态初始化给出初始化值,由系统决定长度。它的形式为:int[]arr={1,2,3}.
而C语言中定义一个动态数组形式为:int a=(int)malloc(sizeof(int)*3),定义一个静态数组形式为:int a[3]。
<3>求数组的元素的个数的方法不同:
A.Java中用.length可以直接求数组的元素的个数,例如:a=arr.length,则a就等于数组arr[]中元素的个数,Java中允许长度为零。
B.C中求数组元素的个数用操作符sizeof。
热心网友 时间:2022-05-22 00:38
C语言是底层的语言,java可以看作是在C上面封装起来的一种语言,就像建一座高楼一样,C语言更像砖块,沙石等这些基础的东西,而java可以看作是砖块和沙石这些东西组合起来的一面可以搬来搬去的墙。