📌 배열
더보기
💡 배열 형식
자료형 배열명[배열크기]
int subway_array[3]
(코드, 출력결과)
#include <stdio.h>
int main(void) {
int subway_array[3];
subway_array[0] = 30;
subway_array[1] = 40;
subway_array[2] = 50;
for (int i = 0; i < 3; i++) {
printf("지하철 %d호차에 %d명이 탐.\\n", i + 1, subway_array[i]);
}
return 0;
}
- 배열의 크기는 항상 상수
📌 배열 초기화
#include <stdio.h>
int main(void) {
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; //배열 초기화
for (int i = 0; i < 10; i++) {
printf("%d\\n", arr[i]);
}
return 0;
}
// 1 2 3 4 5 6 7 8 9 10 출력
- 배열을 선언할 때 한 번에 초기화 하려면 중괄호 안에 넣음.
- 초기화 하지 않고 int arr[10] 이렇게 선언만 하면 이상한 값이 출력 됨.
일부 값 초기화하기
#include <stdio.h>
int main(void) {
int arr[10] = { 1,2 }; //일부 값 초기화
for (int i = 0; i < 10; i++) {
printf("%d\\n", arr[i]);
}
return 0;
}
//1 2 0 0 0 0 0 0 0 0 출력
- 일부만 초기화하면 초기화한 값은 그대로 저장되고 나머지는 모두 0으로 초기화
int arr[] = { 1,2}
- 배열 크기 지정 안해도 자동으로 배열 생성 됨.
실수형 배열 초기화하기
#include <stdio.h>
int main(void) {
float arr[5] = { 1.23, 2.34, 3.45 }; //일부 값 초기화
for (int i = 0; i < 5; i++) {
printf("%.1f / ", arr[i]);
}
return 0;
}
// 출력 : 1.2 / 2.3 / 3.5 / 0.0 / 0.0 /
- 실수도 마찬가지로 일부만 초기화 하면 나머지는 0
📌 문자열 다루기
#include <stdio.h>
int main(void) {
char str[7] = "coding";
printf("%s\\n", str);
printf("%d\\n", sizeof(str));
return 0;
}
//출력 coding
// 출력 7
- coding은 6글자인데 왜 배열크기가 7개로 들어가는지?
- 배열에 문자열을 저장할 때는 항상 문자열의 끝을 알리는 null 문자가 들어갈 공간을 마련
- 그래서 sizeof로 문자열의 배열 크기를 출력해도 7이라고 나옴.
- 문자는 ‘a’ 작은 따옴표로, 문자열은 “” 큰 따옴표로
배열에 한글 저장하기
#include <stdio.h>
int main(void) {
char str[] = "로또당첨";
printf("%s\\n", str);
printf("%d\\n", sizeof(str));
return 0;
}
//출력 로또당첨
// 9
- 로또당첨은 왜 또 9개로 나오는지?
- 한글은 한 글자에 2바이트를 차지함 그래서 로또당첨 * 2 + 1(null)
📌 문자열 깊게 다루기
#include <stdio.h>
int main(void) {
char name[256];
printf("이름을 말하세요");
scanf_s("%s", name, sizeof(name));
printf("%s", name);
return 0;
}
- name[256]: 어떤 문자열이 올지 모르니까 [256]으로 넉넉하게 선언
- sizeof(): 버퍼 오버플로 문제를 방지하기 위해 sizeof로 입력크기 지정
'언어 > C' 카테고리의 다른 글
[코딩자율학습] 12일차 포인터 (0) | 2024.03.19 |
---|---|
[코딩자율학습] 11일차 프로젝트: 자라나라 머리머리 (0) | 2024.03.18 |
[코딩자율학습] 9일차 프로젝트: 비밀번호 마스터 (0) | 2024.03.14 |
[코딩자율학습] 8일차 함수 (0) | 2024.03.13 |
[코딩자율학습] 7일차 여러방향으로 분기하기 (1) | 2024.03.12 |