●배열(array)
1)정의: 같은 종류의 데이터 타입을 선언하기 위해 구성된 데이터의 집합.
*일반변수 선언과의 차이: 일반변수의 경우에는 따로 분리된 변수 이름을 사용하지만,
배열은 변수를 한 줄로 묶어서 전체 이름을 지정하고, 인덱스로 값을 구분하여사용.(0부터시작)
[추가내용: 배열첨자는 왜 0부터?? : 배열 첫 원소로부터 몇 개 뒤의 원소인가를 나타내기 때문]
일반변수: int a = 5;
5 |
배열: int arr[3] = {1,2,3};
1 | 2 | 3 |
arr[0] arr[1] arr[2]
배열요소: 배열을 구성하는 요소. 위에서 데이터(1,2,3)이 배열의 요소이다.
↙배열 크기
2)선언예시: int arr[3] = {1,2,3}; or int arr[ ] = {1,2,3}; << 빈칸 해놓으면 자동으로 된다. 다차원 배열에서는 안됨.
↗ ↖
배열 데이터 타입 배열 이름
3)배열과 반복문
배열과 반복문의 시너지효과가 큼
-코드예제
#include <stdio.h>
int main() {
int sum = 0;
int score[5] = { 1,2,3,4,5 };
int cnt;
for (cnt = 0; cnt <= 4; cnt++) {
sum = sum + score[cnt];
}
printf("sum = %d", sum);
return 0;
}
sum = 0
1)sum = 0 + score[0] = 1
2)sum = 1 + score[1] = 3
3)sum = 3 + score[2] = 6
4)sum = 6 + score[3] = 10
5)sum = 10 + score[4] = 15
4)주의사항
●배열의 데이터 인덱스값은 0부터 시작한다.
●배열에 서로 다른 자료형을 저장할 수 없다.
●배열 선언시 원소의수는 상수여야한다.
ex) int n = 100; int cost[n]; (X)
●배열을 선언할 때만 {}로 초기화할 수 있다.
ex) int n[5]; n = {1,3,5,7,9}; (X)
ex) int n[5] = {1,2,3,4,5}; (O)
5)문자열과 배열
-C언어에는 문자열형(string)이 따로없어 배열을이용해 문자열을 표현해야한다.
-문자열은 ' '(문자로 인식) 이 아닌 " "(문자열로 인식) 를 꼭 사용해야한다.
-반드시 null(\0) 문자가 들어갈 공간을 확보해야한다
-scanf 함수 선언시 &를 붙이지 않는다.(배열 그자체가 메모리 주소 역할을 하기 때문)
-이미 할당된 배열에 문자열을 할당할 수 없다.
char ch[8];
ch ="apple"; << 이런식으로 X
예시
char ch[8] = "apple";
a | p | p | l | e | \0 |
코드예시
#include <stdio.h>
int main() {
char apple1[6] = { 'a','p','p' ,'l','e' ,'\0'};
char apple2[6] = "apple";
char apple3[5] = "apple";
printf("%s\n", apple1); // apple 정상출력
printf("%s\n", apple2); // apple 정상출력
printf("%s\n", apple3); //출력 오류
return 0;
}
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 11강 선행처리기 명령어 #define 함수 (상수치환/매크로) (0) | 2020.10.31 |
---|---|
C언어 10강+ 배열 응용: 배열의 최댓값구하기 알고리즘 (2) | 2020.10.31 |
C언어 9강 while문과 do-while 문 (0) | 2020.10.29 |
C언어 8강 반복문 for문 (0) | 2020.10.29 |
C언어 7강 else if문과 switch 문 (0) | 2020.10.28 |