검색결과 리스트
글
2차원 배열의 구조부터 알아보자
int array [4][3];
int : 자료형
array : 배열 이름
[4][3] : 행*열로 총 12개의 배열의 칸을 확보, 단, 열의 길이는 무조건 설정해주어야 한다.
<2차원 배열 선언과 초기화>
int a1[4][3] = {{1,2}, {3}, {4}, {5}};
위에 선언한 2차원 배열을 구조적으로 살펴보면 이런식으로 배열이 만들어 진다.
앞에 [4]는 행을, 뒤에 [3]은 열을 말한다.
int a2[4][3]={1,2,3,4,5}
2차원 배열의 원소를 저장하는 방법은 여러가지다.
일일이 모든 배열의 원소에 대입해줘도 돼고, 간략하게 괄호로 표현해도 된다.
<실습>
2차원 배열의 원소는 arr1[0][0]이런식으로 첫번째는 행, 두번째는 열로 표현이 된다.
-결과-
<2차원 배열 주소와 값의 참조>
2차원 배열의 주소를 참조하는 연산자는 &이다. 1차원 배열의 주소 연산자와 동일하다.
&연산자 자체가 주소를 나타낼 때 사용하는 연산자이기 때문이다.
자, 이번에는 2차원 배열의 주소를 나열해보자. 좀 헷갈릴수도 있지만 자세히 이해하면 쉬울 것이다.
int arr[2][2]={1,2,3,4}; 이렇게 만들어다고 가정하자.
다음 표는 각 자리의 주소를 나타낸 것이다.
2차원 배열의 대표주소 : arr
첫 번째 행 대표주소 : arr[0] == *(arr+0)
두 번째 행 대표주소 : arr[1] == *(arr+1)
이렇게 구성된다. (실제 하드디스크에는 이렇게 2차원적으로 존재하지 않고 일렬로 존재하지만 논리적으로 설명하기 위해 이렇게 만든것이다. 앞으로도 이렇게 해석하는게 도움이 될 것이다.)
<실습>
-결과-
<*연산자>
*연산자는 주소안에 있는 값을 참조할 때 사용한다.
예를 들어 int arr[2][2] = {1,2,3,4}를 만들었다고 가정하자. 이때 주소를 표현할 때는 어떻게할까?
&arr[0][0]이면 첫행의 첫번째열의 주소를 출력한다. 그 주소의 값을 참조하고 싶을땐? *연산자를 사용하여 참조하면된다
*&arr[0][0] => 1출력
<실습>
-결과-
'Programming > C' 카테고리의 다른 글
C언어 - 함수 포인터 (0) | 2016.05.15 |
---|---|
C언어 - 포인터(Pointer) (0) | 2016.05.14 |
C언어 - 배열의 주소와 값의 참조, &연산자, *연산자 (1) | 2016.05.12 |
C언어 - 1차원 배열 (0) | 2016.05.11 |
C언어 - 지역변수, 전역변수, 정적변수, 레지스터 변수 (0) | 2016.05.10 |
RECENT COMMENT