1차원 또는 2차원. 두 옵션에 대해 동일한 코드를 만들지 않기 때문에 문제의 답이 다릅니다. 더 정확하게는 코드를 만들 수 있고 만들 것이지만 배열의 차원 수를 미리 알지 않고는 코드를 호출할 수 없습니다. 당신은 프로그래머가 아니기 때문에 당신의 말로 판단하면 이것을 믿음으로 받아들일 것을 제안합니다.
그건 그렇고, 컴파일 단계에서 사용 가능한 유형 이름은 차원 수뿐만 아니라 매개 변수가 배열이라는 사실에 대해서도 알려줍니다. sizeof==52로 이것을 이해할 수 있지만. 그러나 다시 말하지만 차원 수에 대해서는 아무 말도 하지 않습니다. 따라서 #define을 통한 편리한 솔루션에 대한 옵션도 표시되지 않습니다. 다른 차원의 배열 을 전달할 수 있는 ArrayCopy 및 ArrayResize와 같은 내장 호출만 사용하는 모든 함수 코드가 정의에 채워지지 않는 한
void z( int & z[], int shift){};
void z( int size_second_dimension, int & z[][], int shift){};
정확히 기억은 나지 않지만 두 번째 및 다음 차원은 동적일 수 없는 것 같습니다. 따라서 이러한 코드를 컴파일할 때 오류가 발생할 수 있습니다. 여기에서 변수 size_second_dimension은 두 번째 차원의 주어진 크기로 사용될 수 있으며 함수가 오버로드 되도록 허용합니다. 또한 ArrayRange()를 사용하여 차원을 결정할 필요가 없습니다.
정확히 기억은 나지 않지만 두 번째 및 다음 차원은 동적일 수 없는 것 같습니다. 따라서 이러한 코드를 컴파일할 때 오류가 발생할 수 있습니다. 여기에서 변수 size_second_dimension은 두 번째 차원의 주어진 크기로 사용될 수 있으며 함수가 오버로드 되도록 허용합니다. 또한 ArrayRange()를 사용하여 차원을 결정할 필요가 없습니다.
컴파일되지만 그다지 흥미롭지 않습니다. z[][][]는 어떻습니까?
두 번째 이상의 차원은 동적일 수 없지만 함수는 두 번째 차원의 특정 크기에 맞게 조정할 필요가 없습니다. ArrayRange()를 통해 찾을 수 있습니다.
차원 수가 함수 오버로드를 허용하지 않으면 두 번째 차원 등의 크기는 절대 허용하지 않습니다. 예, 그래서 그것은 전혀 보편적이지 않기 때문에 완전히 흥미롭지 않습니다. 다른 함수 이름으로 작성하는 것이 더 쉽습니다.
작업: 배열에서 요소를 제거합니다.
작업: 배열에서 요소를 제거합니다.
1차원 또는 2차원. 두 옵션에 대해 동일한 코드를 만들지 않기 때문에 문제의 답이 다릅니다. 더 정확하게는 코드를 만들 수 있고 만들 것이지만 배열의 차원 수를 미리 알지 않고는 코드를 호출할 수 없습니다. 당신은 프로그래머가 아니기 때문에 당신의 말로 판단하면 이것을 믿음으로 받아들일 것을 제안합니다.
여기서 배열은 4차원을 초과하지 않습니다. 따라서 4가지 다른 기능을 작성할 수 있습니다.
그리고 8차원 더미가 약하다?
이러한 방식으로 문제에 접근하면 다차원 배열 을 전혀 선언할 필요가 없습니다. 대신 다른 필드가 있는 구조의 배열을 사용해야 합니다. 그러나 질문은 다르게 지정됩니다. 이미 주어진 것으로 사용 가능한 임의의(미리 알 수 없는) 차원의 배열로 무엇을 할 수 있습니까?
다기능 옵션에 대해 마음에 들지 않는 것은 무엇입니까?
매개변수 배열의 서로 다른 차원 마다 이름이 다른 함수에서 동일한 코드(당신이 말하는 코드)를 복제해야 한다는 사실
여기서 배열은 4차원을 초과하지 않습니다. 따라서 4가지 다른 기능을 작성할 수 있습니다.
문제는 4개의 함수를 작성하는 것이 아니라 다른 유형에서 발생하는 것처럼 하나를 사용하는 배열에서 작동하지 않는다는 것입니다. 따라서 µl에서다차원 배열 (내장 유형 [])을 사용하지 않고 수행하는 것이 좋습니다.
그리고 8차원 더미가 약하다?
쉽게 구조를 통해.
아, 그리고 오버로딩은 저장되지 않습니다:
그렇게 컴파일이 되나요?
정확히 기억은 나지 않지만 두 번째 및 다음 차원은 동적일 수 없는 것 같습니다. 따라서 이러한 코드를 컴파일할 때 오류가 발생할 수 있습니다. 여기에서 변수 size_second_dimension은 두 번째 차원의 주어진 크기로 사용될 수 있으며 함수가 오버로드 되도록 허용합니다. 또한 ArrayRange()를 사용하여 차원을 결정할 필요가 없습니다.그렇게 컴파일이 되나요?
정확히 기억은 나지 않지만 두 번째 및 다음 차원은 동적일 수 없는 것 같습니다. 따라서 이러한 코드를 컴파일할 때 오류가 발생할 수 있습니다. 여기에서 변수 size_second_dimension은 두 번째 차원의 주어진 크기로 사용될 수 있으며 함수가 오버로드 되도록 허용합니다. 또한 ArrayRange()를 사용하여 차원을 결정할 필요가 없습니다.컴파일되지만 그다지 흥미롭지 않습니다. z[][][]는 어떻습니까?
두 번째 이상의 차원은 동적일 수 없지만 함수는 두 번째 차원의 특정 크기에 맞게 조정할 필요가 없습니다. ArrayRange()를 통해 찾을 수 있습니다.
차원 수가 함수 오버로드를 허용하지 않으면 두 번째 차원 등의 크기는 절대 허용하지 않습니다. 예, 그래서 그것은 전혀 보편적이지 않기 때문에 완전히 흥미롭지 않습니다. 다른 함수 이름으로 작성하는 것이 더 쉽습니다.