배열
배열은 동일한 데이터 유형을 여러 개 사용해야 할 경우 이를 손쉽게 처리하기 위해
여러 개의 변수들을 조합해서 하나의 이름으로 정의해 사용하는 것
- 배열은 하나의 이름으로 여러 기억장소를 가리킨디ㅏ.
배열에서 개별적인 요소들의 위치는 첨자를 이용하여 지정
- 배열은 변수명 뒤에 대괄호[ ]를 붙이고 그 안에 사용할 개수를 지정
- 배열의 위치는 0부터 시작된다.
- 배열은 행 우선으로 데이터가 기억장소에 할당된다.
1차원 배열
1차원 배열은 변수들을 일직선상의 개념으로 조합한 배열이다.
배열은 선언되는 형식에 따라 1차원 배열, 2차원 배열뿐만 아니라 그 이상의 다차원 배열로도 선언할 수 있습니다.
하지만 현실적으로 이해하기가 쉬운 2차원 배열까지가 많이 사용됩니다.
자료형 변수명[개수];
◎ numArr[0] 은 첫 번째이다. numArr이라는 배열명 뒤에 [ ]안에 숫자는 배열의 위치를 나타낸다.
C언어
1차원 배열 a의 각 요소에서 10,11,12,13,14를 저장 후 출력
#include<stdio.h>
main()
{
int a[5];
int i;
for(i=0; i<5; i++)
a[i] = i+10;
for(i=0; i<5; i++)
printf("%d", a[i]);
}
JAVA
public class Example{
public static void main(String[] args){
int a[] = new int[5];
int i;
for(i=0; i<5; i++)
a[i] = i+10;
for(i=0; i<5; i++)
System.out..printf("%d", a[i]);
}
}
2차원 배열
변수들을 평면, 즉 행과 열로 조합한 배열이다.
2차원 배열은 [ ] (대괄호)를 두 번 사용하여 선언하며 첫 번째 대괄호에는 세로 크기, 두 번째 대괄호에는 가로 크기를 지정합니다. 일반적으로 2차원 공간은 가로x세로로 표기하지만 배열로 만들 때는 세로x가로로 표기한다.
자료형 변수명(배열이름)[세로크기][가로크기];
자료형 변수명(배열이름)[세로크기][가로크기] = { { 값, 값, 값 }, {값, 값, 값} };
자료형 변수명[행개수][열개수]
#include<stdio.h>
main()
{
int a[3][4];
int i,j,k = 0;
for(i=0; i<3; i++){ //행
for(j=0; j<4; j++){ //열
k++;
a[i][j] = k;
}
}
}
결과값
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
배열의 초기화
배열 선언 시 초기값을 지정할 수 있다.
배열을 선언할 때 배열의 크기를 생략하는 경우에는 반드시 초기값을 지정해야
초기값을 지정한 개수 만큼의 배열이 선언된다.
#include<stdio.h>
main()
{
int a[2][4] = {
{10,20,30,40},
{50,60,70,80}
};
printf(%d", a[0][0]);
prinf(%d\n", a[1][1]);
}
배열 형태의 문자열 변수
큰 따옴표(" ")로 묶인 글자는 글자 수에 관계없이 문자열로 처리된다.
문자열을 저장하는 자료형이 없기 때문에 배열, 또는 포인터를 이용하여 처리한다.
char 배열이름[크기] = "문자열"
- 배열의 문자열을 저장하면 문자열의 끝을 알리기 위한 널 문자가 문자열 끝에 자동으로 삽입
- 배열에 문자열을 저장할 때는 배열 선언 시 초기값으로 지정해야 하며, 이미 선언된 배열에는 문자열 저장 X
- 문자열 끝에 자동으로 널 문자가 삽입되므로, 널 문자까지 고려하여 배열 크기를 지정
C언어
#include<stdio.h>
main()
{
char a='A';
char b[9] = "ABCDEFGHI"
char *c = "ABCDEFGHI"
printf("$c\n", a);
printf("%s\n", c);
printf("%s\n", c);
}
결과 값
a = A, c = ABCDEFGHI, c= ABCDEFGHI
JAVA
public class Example{
public static void main(String[] args){
String str = "Information!";
int n = str.length();
char[]st = new char[n];
n--;
for(int k = n; k >= 0; k--){
st[n-k] = str.charAt(k);
}
for(char k : st){
System.out.printf("%c", k);
}
}
}
'정보처리이론' 카테고리의 다른 글
1-6. Python 의 기초와 라이브러리 (0) | 2020.10.17 |
---|---|
1-5. 포인터와 사용자정의함수 (0) | 2020.10.17 |
1-3. 제어문과 반복문 (0) | 2020.10.17 |
1-2. 데이터입출력과 연산자 (0) | 2020.10.17 |
1-1. 데이터타입과 변수 (0) | 2020.10.17 |