집 >백엔드 개발 >C#.Net 튜토리얼 >C 언어에서 2차원 배열이 메모리에 저장되는 순서는 무엇입니까?
메모리에서 2차원 배열의 저장 순서는 행 단위입니다. 즉, 한 행이 배치된 후 두 번째 행이 배치됩니다. 즉, "a[0]" 행이 먼저 저장됩니다. 그런 다음 "a[1]" 행이 저장됩니다. 그런 다음 모든 요소가 배치될 때까지 "a[2]" 행을 저장합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, c99 버전, Dell G3 컴퓨터.
2차원 배열 정의의 일반적인 형식은 다음과 같습니다.
dataType arrayName[length1][length2];
여기서 dataType은 데이터 유형이고, arrayName은 배열 이름이고, length1은 첫 번째 차원 첨자의 길이이고, length2는 두 번째 차원 첨자의 길이입니다. .
2차원 배열은 행과 열이 있는 Excel 테이블로 생각할 수 있습니다. length1은 행 수를 나타내고 length2는 2차원 배열에서 요소를 찾으려면 행과 열 수를 모두 나타냅니다. 열을 지정해야 합니다. 예:
int a[3][4];
는 총 3×4=12개의 요소로 구성된 3개의 행과 4개의 열로 구성된 2차원 배열을 정의합니다. 배열 이름은 a입니다. 즉,
a[0][0], a[0][1], a[0][2], a[0][3] a[1][0], a[1][1], a[1][2], a[1][3] a[2][0], a[2][1], a[2][2], a[2][3]
요소를 표현하려는 경우입니다. 행 2와 열 1에는 [2][1]을 작성해야 합니다.
2차원 배열을 x축과 y축이 있는 좌표계로 생각할 수도 있습니다. 평면의 한 점을 결정하려면 x축과 y축을 모두 알아야 합니다.
2차원 배열은 개념적으로 2차원이지만 메모리에 연속적으로 저장됩니다. 즉, 2차원 배열의 요소는 서로 간격 없이 나란히 있습니다. 그렇다면 선형 메모리에 2차원 배열을 저장하는 방법은 무엇일까요? 두 가지 방법이 있습니다.
하나는 행별로 정렬하는 것입니다. 즉, 한 행을 배치한 후 두 번째 행을 배치합니다. 배치되면 두 번째 행이 List로 배치됩니다.
이렇게 생각하시면 2차원 배열은 같은 길이의 1차원 배열 여러 개로 구성됩니다.
예:스터디 그룹에 5명이 있고, 각 사람은 3개 과목의 시험 점수를 가지고 있으며, 각 과목의 평균 점수와 그룹의 전체 평균 점수를 구합니다.
--C | English | Zhang Tao | |
75 | 92 | Wang Zhenghua | |
65 | 71 | 이자오쿳안 | |
87 | 90 | 저우 멍젠 | |
77 | 85 | 이 질문에 대해 2차원 배열 a[5][3]은 3개 과목의 5명의 점수를 저장하고, 1차원 배열 v[3]을 정의하여 각 과목의 평균 점수를 저장한 후 변수 평균을 정의한다. 총 평균 점수를 저장합니다. 최종 프로그래밍은 다음과 같습니다: | |
Input score: 80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙ Math: 72 C Languag: 73 English: 81 Total: 75 | 프로그램은 중첩 루프를 사용하여 모든 과목에서 모든 학생의 점수를 읽습니다. 내부 루프에서는 특정 과목의 각 학생의 점수를 순서대로 읽어서 이 점수를 누적하고, 내부 루프를 빠져나간 후(외부 루프로 진입) 누적된 점수를 5로 나누어 v[i]로 보낸다. ] 는 해당 강좌의 평균 점수입니다. 외부 루프는 총 3회 반복되며, 세 과목 각각의 평균 성적을 계산하여 배열 v에 저장합니다. 모든 루프가 완료된 후 v[0], v[1], v[2]를 더하고 3으로 나누어 전체 평균 점수를 얻습니다. 관련 추천: " | C 언어 비디오 튜토리얼 | "
위 내용은 C 언어에서 2차원 배열이 메모리에 저장되는 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!