Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- BOF
- mysql
- hackerschool
- 인공지능
- Python
- 러닝 스칼라
- 딥러닝
- 리눅스
- Javascript
- Linux
- 백엔드
- flask
- Web
- 경제
- Shellcode
- ChatGPT
- backend
- 챗GPT
- webhacking
- c++
- 파이썬
- BOF 원정대
- c
- 러닝스칼라
- hacking
- deep learning
- 웹해킹
- Scala
- php
- hackthissite
Archives
- Today
- Total
jam 블로그
[C] 16. 다차원 배열 본문
728x90
I. 다차원 배열
2차원 배열의 선언
- 2차원 배열의 선언과 의미
1차원 배열
2차원 배열
가로가 열 세로가 행을 가리킨다.
- 자료형 배열이름[행][열]; 이런식으로 선언하면 된다.
실제 메모리상의 그림
- 위와 같은 그림 처럼 메모리에 잡힌다.
2차원 배열! 선언과 동시에 초기화 (여기서 부터는 그림 귀찮아서 안 그립니다.)
- 초기화 case 1: 행 단위로 모든 요소들을 초기화 하는 경우
- int main()
{
int somang[3][3]=
{
{1,2,3},{4,5,6},{7,8,9}
};
}
- 위와 같이 배열의 개수 만큼 써서 초기화를 해주면 된다. {} 당 한 행으로 보면 된다.
- 초기화 case 2: 행 단위로 일부 요소들만 초기화하는 경우
- int main()
{
int somang[3][3]=
{
{1},{4,5},{7,8,9}
};
}
- 위와 같이 초기화 할경우 첫째행에 들어가는 수는 1,0,0 이 들어간다. 부족한 부분은 0으로 채워진다.
- 초기화 case 3: 1차원 배열 초기화 형태를 취하는 경우
int somang[3][3] = {1,2,3,4,5,6,7};
- 위와 같이 하면 1~7까지 들어가고 나머지 0이 들어간다.
- 배열의 크기를 알려주지 않고 초기화 하기
int arr[][]={1,2,3,4,5,6,7,8}
- 위와 같이 하면 2*4 행렬 또는 4*2 행렬 1*8 8*1행렬등 어떤식인지 컴터가 몰라 오류가 난다. 다음과 같이 둘중 하나는 알려줘야 한다.
int arr[][4]={1,2,3,4,5,6,7,8};
II. 3차원 그 이상의 배열!
여기서는 별로 설명을 안하겠다.
- 3차원 이상의 배열은 거의 사용 안한다.
- 2차원배열을 행렬로 생각하고 3차원 행렬은 큐브 모양으로 되어 있다고 생각하면 쉬울 것이다.
문제
16 -1
문제 1
3*9 int형 2차원배열을 선언하자 그리고 그 안에 구구단의 결과를 4단까지 저장하자 제대로 저장되었음을 확인하기 위해서 출력해 보자
문제2
A는 2*4 int형 배열이다. 1~8까지로 초기화 시킨 다음 4*2형태로 바꾸고 A에 있는 값으로 초기화 시키자.
'개발 및 관련 자료 > C' 카테고리의 다른 글
[C] 18. 다차원 배열 그리고 포인터 (0) | 2013.05.12 |
---|---|
[C] 17. 포인터의 포인터 (0) | 2013.05.12 |
[C] 14. 포인터와 함수에 대한 이해 (0) | 2013.05.12 |
[C] 13. 포인터와 배열 (0) | 2013.05.12 |
[C] 12. 포인터의 이해 (0) | 2013.05.12 |
Comments