>  기사  >  Java  >  Java에서 배열 사이에 값을 할당하는 방법

Java에서 배열 사이에 값을 할당하는 방법

王林
王林앞으로
2023-05-02 12:46:061167검색

배열 이름은 배열의 헤드 포인터가 가리키는 *** 요소의 주소입니다. 이렇게 이해하면 허벅지로 생각해보면 a=b는 실현할 수 없다는 것을 알 수 있습니다. 일반적으로 C 및 C++에서는 다음과 유사하게 A 루프를 사용하여 단일 값을 할당합니다.

a[i]=b[i];
  1. 구현하기 위해 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는 데이터의 주소를 대상 데이터에 직접 할당하는 방식입니다. 두 배열은 실제로 동일한 주소를 참조하므로 원래 값이 변경될 수 있습니다.
  2. 이렇게 분석하면 C++의 함수 매개변수에서 포인터 및 참조 값 전송과 약간 비슷합니다. Java에서는 포인터가 폐기되므로 모든 포인팅 관계는 C++를 오랫동안 사용하면 실수하기 쉽습니다. . 이런 오류가 발생했습니다. C++에서처럼 addResources(int *a,int *b) 또는 addResources(int a[],int b[]) 값을 전달하는 것과는 다릅니다. 이게 단점이 될 것 같다.. 배움에 더 집중해야 하는 시간이 이번이 유일한 것 같다. 취업 박람회의 기본 질문이 왜 간단해 보이지만 모두가 잘 대답할 수는 없는지 이제 알겠다. .

위 내용은 Java에서 배열 사이에 값을 할당하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제