java数组与c数组的区别
来源:互联网 发布:东方网络股票复牌日 编辑:程序博客网 时间:2024/04/28 08:39
java数组
我们观察数组的动态洗和传递性
import java.util.Scanner;public class ArrayTest{ public static void main(String[] argv){ Dynax(); } //动态性 public static void Dynax(){ Scanner sc=new Scanner(System.in); int num=sc.nextInt(); int[] array=new int[num]; System.out.println(array.length); Through(array); for(int zhi:array){ System.out.println(zhi); } Hello[] harray=new Hello[num]; System.out.println(harray.length); Through(harray); for(Hello obj:harray){ System.out.println(obj.num); } } //传递性 public static void Through(int[] array){ for(int i=0,len=array.length;i<len;i++){ array[i]=100; } } public static void Through(Hello[] array){ for(int i=0,len=array.length;i<len;i++){ array[i]=new Hello(); array[i].num=100; } }}class Hello{ int num;}
可见不管是基本类型的数组,还是应用类型的数组都可以动态创建
而且数组都是值传递。
c语言
这里写代码片#include<stdio.h>#include<malloc.h>int main(){ int num; scanf("%d",&num); int array[num]; //array=(int *)malloc(4*10); array[0]=100; return 0;}
所以不可以按照上述方式创建,只能这样创建。
#include<stdio.h>#include<malloc.h>int main(){ void Through(int p[],int length); int num; scanf("%d",&num); int *array; array=(int *)malloc(4*10); Through(array,num); for(int i=0;i<num;i++) { printf("%d\n",array[i]); } return 0;}void Through(int p[],int length){ for(int i=0;i<length;i++){ p[i]=100; }}
由此可见c可以动态创建数组,只不过需要调用malloc()函数,同样数组也是引用传递。
0 0
- java数组与c数组的区别
- java与c中数组的区别
- Java数组与C/C++数组的区别
- PHP数组与java数组的区别
- Java数组与c++数组的区别
- js数组与java数组的区别
- C/C++与Java二维数组的内存分配区别
- C数组与java数组在内存中的区别
- C数组名与指针的区别
- C语言数组与指针的区别
- C中数组与指针的区别
- C 数组与链表的区别
- C/C++静态数组与动态数组的区别
- golang中的数组与C中数组的区别
- C语言中数组名与&数组名的区别
- c中指针数组与数组指针的区别
- c中和java中数组的区别
- C和JAVA中数组的区别
- 容易 删除排序链表中的重复元素
- 以太网数据帧协议分析
- mysql 编译安装和安装
- CSS浮动(float,clear)通俗讲解
- 容易 判断数独是否合法
- java数组与c数组的区别
- 容易 删除链表中倒数第n个节点
- Caused by: java.net.SocketException: Software caused connection abort: socket write error
- Objective-C内存管理中的Retain Circle
- 生活学习记录-RxJava + 实习
- Python+Django+Eclipse 在Windows下快速配置
- Vmware桥接设置适合局域网
- 并查集
- 面试题 求一个字节中的1的位数