배열 이름은 배열의 헤드 포인터가 가리키는 *** 요소의 주소입니다. 이렇게 이해하면 허벅지로 생각해보면 a=b는 실현할 수 없다는 것을 알 수 있습니다. 일반적으로 C 및 C++에서는 다음과 유사하게 A 루프를 사용하여 단일 값을 할당합니다.
a[i]=b[i];구현하기 위해 C와 C++을 오랫동안 배워서 많이 사용해 보니 더 이상 번거롭지 않습니다. 그러나 JAVA에서는 C 및 C++와 동일하지 않습니다. JAVA는 a=b를 사용하여 a에 할당할 수 있습니다. JAVA에서 a=b를 사용할 때 주의하세요. 내용은 배열 형식으로 출력되며 b의 내용과 정확히 동일하므로 이 방법이 내 프로그램에서 사용되는 방식이지만 버그가 발생합니다. 처음에는 a=b를 사용하든 a=a.clone();을 사용하든 결과가 동일하다는 것을 알았기 때문에 약간 혼란스러웠지만 이제는 완전히 이해하게 되었습니다. 이 문제를 설명하기 위해 프로그램을 사용해 보겠습니다.
private int[] subResources(int[] aa, int[] bb) { // 做减法 int []a=aa; int []b=bb; for (int i = 0; i < a.length; i++) a[i] = a[i] - b[i]; return a; }이것은 두 배열의 뺄셈을 구현하는 데 사용되는 함수입니다. 이와 같이 호출 프로그램에서
int []allo=pcb0.getAllocation().clone(); //方式1 //int []allo=pcb0.getAllocation()//方式2 int[] allocation = this.addResources(allo, request);를 사용하면 매개변수를 전달하는 방법이 달라집니다. 예, addResources 함수에서 들어오는 매개 변수의 값을 수정하면 메서드 1은 원본 데이터를 변경할 수 없지만 메서드 2는 원본 데이터를 변경할 수 있습니다. 방법 1에서 값을 할당할 때 먼저 배열의 복사본을 만든 다음 해당 복사본을 대상 배열에 할당합니다. 이러한 방식으로 복사본 배열의 주소는 물론 원본 배열의 주소와 동일하지 않습니다. 이런 방식으로 어떻게 변경하더라도 방법 1은 원본 데이터를 변경하지 않지만 방법 2는 데이터의 주소를 대상 데이터에 직접 할당하는 방식입니다. 두 배열은 실제로 동일한 주소를 참조하므로 원래 값이 변경될 수 있습니다.
위 내용은 Java에서 배열 사이에 값을 할당하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!