首页 > 解决方案 > c和java在简单数组函数上的区别?

问题描述

除了一些明显的差异,如差异 [] 位置,java 中的数组和 c 中的数组之间是否有任何根本区别?

我写了一个小程序来计算总和来比较它们。

//java
public static int arraySum(int[] a) {
        int sum = 0;
        for (int i = 0; i < a.length ; i++) {
            sum = sum + a[i];
        }
        return sum;
    }
    public static void main(String[] args) {
        int[] tryArray = {1,2,3,4,5};
        System.out.println(arraySum(tryArray));
    }
//c
int sum_array(int a[], int len) {
int sum = 0;
for (int i = 0; i < len; ++i) {
sum += a[i];
}
return sum;
}
int main(void) {
int my_array[5] = {1,2,3,4,5};
trace_int(sum_array(my_array, 5)); // any ways to remove the 5(length) from the parameter?
}

另外,如果我在 c 中使用 char 数组,它看起来像 java 中的字符串?char posi_string[3] = "str"

我可以使用这种方法来操作 c 中的字符串吗?

标签: javaarraysc

解决方案


有什么方法可以从参数中删除长度?

,当您将数组传递给 C 中的函数时,它不再被假定为数组而是指针。因为它是一个指针,你不能再用它来评估它的大小sizeof(arr) / sizeof(arr[0])——因此,你只需要传递另一个参数,例如,size告诉函数数组的大小。

如果我在 C 中使用 char 数组,它看起来像 Java 中的字符串吗?

, Java 有一个String内置代码丰富的类。在 C 中不太可能,char是一种原始数据类型,它没有任何功能,您需要手动创建一个。


推荐阅读