➜ 정수형, 실수형, 상수, printf, scanf, 문자열
➜ 반복문 | for, while, do-while, 이중 for문(구구단 예시)
➜ 조건문 | if, else if, else, break, continue, rand(), srand()
➜ 함수(function) | 선언과 정의, 반환값, 파라미터(매개변수)
➜ 배열(Array) | 문자열 초기화, 크기와 메모리, 문자열 함수, sizeof(),
널(null) 문자('\0')
➜ 다차원 배열(Multi-Demetional Arrays)
➜ 포인터(pointer) 개념 완벽이해하기(ft. 미션맨과 스파이의 임무)
➜ 구조체(Struct) | 구조체 포인터, typedef
➜ 자주 쓰이는 '내장함수' 정리 | 파일입출력, 문자열처리, 수학, 포인터
관련 함수
1. 배열의 개념과 선언
- 배열은 동일한 데이터 타입의 여러 개의 값들을 하나의 변수로 묶어서 관리하는 자료구조이다.
- C언어에서는 배열을 대괄호([])를 사용하여 선언하며, 인덱스를 통해 각 요소에 접근할 수 있다.
int subway_array[3]; // 세 개의 지하철 호차에 대한 배열 선언
subway_array[0] = 30; // 1호차에 30명이 타고 있음
subway_array[1] = 40; // 2호차에 40명이 타고 있음
subway_array[2] = 50; // 3호차에 50명이 타고 있음
2. 배열의 초기화
- 배열을 선언하면서 초기값을 설정할 수 있다.
- 배열의 크기를 지정하고 중괄호({}) 안에 초기값을 나열하면 된다.
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 크기 10의 배열 초기화
- 또는 초기값을 지정하지 않으면, 배열은 해당 자료형의 기본값으로 초기화된다.
- 정수형 배열은 0, 실수형 배열은 0.0, 문자형 배열은 널(null) 문자('\0')로 초기화된다.
3. 배열의 크기와 메모리
- 배열의 크기는 항상 상수로 선언해야 한다.
- 배열은 연속적인 메모리 공간에 저장되며, 각 요소는 인접한 메모리 위치에 위치한다.
- 따라서 배열은 인덱스를 통해 빠르게 요소에 접근할 수 있다.
int arr[5] = {10, 20, 30, 40, 50};
int size = sizeof(arr); // 배열의 크기 계산 (20, int 타입 4바이트 * 5개 요소)
- 배열의 크기를 sizeof() 함수로 계산하면, 배열이 차지하는 메모리 공간 크기를 알 수 있다.
4. 문자열과 문자열의 특징
- 문자열은 문자들의 배열로서, 마지막에 널(null) 문자('\0')가 반드시 포함되어야 한다.
- 널 문자를 통해 문자열의 끝을 표시한다.
char str[6] = "coding"; // 문자열 "coding"을 저장하는 배열
- 문자열은 문자의 집합이므로 각 문자에 접근할 때는 배열과 마찬가지로 인덱스를 사용한다.
5. 문자열의 크기와 문자열 함수
- 문자열의 크기를 계산할 때는 널 문자를 포함하여 크기를 계산해야 한다.
- 이를 위해 sizeof() 함수를 사용하거나, 문자열 관련 함수인 strlen()을 사용할 수 있다.
char str[6] = "coding";
printf("문자열의 크기: %d\n", sizeof(str)); // 6 (널 문자를 포함한 크기)
printf("문자열의 길이: %d\n", strlen(str)); // 6 (널 문자를 제외한 길이)
- 이 외에도 문자열을 조작하는데 유용한 strcpy(), strcmp(), strcat() 등의 함수들이 있다.
6. 문자열의 초기화 방법
- 문자열을 초기화할 때는 크기를 지정하지 않고 중괄호({}) 안에 문자들을 나열하면 된다.
char kor[] = "정처기합격"; // 크기 자동 결정, 널 문자 포함
- 주의할 점은 문자열을 초기화할 때는 널 문자를 반드시 포함해야 한다는 것이다.
- 널 문자가 없으면 문자열의 끝을 알 수 없기 때문에 예상치 못한 결과를 초래할 수 있다.
'C' 카테고리의 다른 글
[C언어] 포인터(pointer) 개념 완벽이해하기(ft. 미션맨과 스파이의 임무) (0) | 2023.08.11 |
---|---|
[C언어] 다차원 배열(Multi-Demetional Arrays) (0) | 2023.08.07 |
[C언어] 함수(function) | 선언과 정의, 반환값, 파라미터(매개변수) (0) | 2023.08.03 |
[C언어] 조건문 | if, else if, else, break, continue, rand(), srand() (0) | 2023.08.02 |
[C언어] 반복문 | for, while, do-while, 이중 for문(구구단 예시) (0) | 2023.08.01 |