У меня есть простой код сценария:Передача массива методу
class Demo
{
static void check(int z[])
{
z=null;
}
}
class arrNullCheck
{
public static void main(String args[])
{
int arr[]={2,3,4,5};
Demo.check(arr);
for(int i=0;i<4;i++)
{
System.out.print(arr[i]);
}
}
}
По мне эта программа должна бросать исключения нулевого указателя во время выполнения, как г равно NULL, но выход следующим образом:
Output: 2 3 4 5
Если я обновить метод как:
static void check(int z[])
{
z[0]=9;
}
, то он будет обновлять массив со значением 9, как и ожидалось. почему здесь не работает нуль?
Затем, что касается элемента 'z [0]' в обновленном методе, он не должен обновлять 'arr'. – Avin
Да, будет. 'z' указывает на то же, что указывает' arr'. Когда вы выполняете 'z [0] = 9', вы вообще не изменяете' z'. Вы изменяете значение в местоположении '0' в массиве, на который указывает' z'. –