1黑马币
- public class Args {
- public static void main(String[] args) {
- int [] arr = {1,2,3};
- int [] arr1 = new int [] {1,2,3};
- int x = 5;
- String str = "abc";
-
- show(arr,x,str); //这么写,正确
- show(new int[]{1,2,3},5,"abc"); //这么写,也正确
-
- //show({1,2,3},5,"abc"); /<font color="#ff0000">/这么写,为什么编译报错,{1,2,3}是个什么样的存在</font>
- }
- public static void show(int [] arr,int x,String str)
- {
- System.out.println(Arrays.toString(arr)+x+str);
- }
- }
复制代码
|
最佳答案
查看完整内容
new int [] {1,2,3}; 这句将新建一个数组 新建了一个一维数组 含有3个元素 1 2 3,然后将它作为参数传递给show
所以可以 show(new int[]{1,2,3},5,"abc"); 但是你传递给函数的并不是arr,因为你new 新建了一个值一样的数组
{1,2,3} 是一个错误的存在
java中有一个叫区域代码块就是在函数中 单独用{}扩出来的
比如
代码块{1,2,3}里边都不是合法的语句所以编译失败,但是
new int[]{1,2,3};里的括号不是区域代码块 它是一维 ...
|