문자의 배열
문자열의 끝이 어딘지를 표현하기 위해서 메모리를 한 칸 더 쓴다.
INDEX 는 0부터 시작함.
일반적으로 컴퓨터가 숫자를 셀 때
0부터 9를 의미한다.
int int_arr[10] 는 10개의 공간 4*10 40byte 임.
char str1[10]
직관적으로 봤을 때는 10개의 문자가 들어갈 것 같지만 문자열을 구분하기 위해, 마지막에는 널 문자(null character)가 들어가게 되어있어서 결국 최대 9글자 밖에 못 들어간다.
- [ ] ← 하나의 공간이라고 생각하자. 여기서 null은 \0 으로 표현한다.
ex) [H] [E] [L] [L] [O] [\0]
Q. 그러면 char str1 [10]은 10칸인데 pritnf가 %s (string)을 출력할 때 10칸을 다 출력해줘야 하는 것은 아닌가? 즉, 바꿔 말하면 HEELO\0 남은 [] 칸까지 출력해주는 건 아닌가?
A. char 문자열은 backslash 0 null charter을 만나게 되면 더 이상 출력을 하지 않는다.
-> 여기에 관련된 적당한 연습문제가 있다. 연습문제 클릭
정말 맞는 지 증명을 해보자.
#include <stdio.h>
int main()
{
char str3[20] = "Hello, \\0Wolrd";
printf ("%s\\n", str3);
return 0;
}
그래도 이해가 안된다면 코딩도장 , string 번 정독 해보도록 하자.
출처: 홍정모의 따라배우는 C언어
강의 외의 추가된 것들은 책, 인터넷 조사해서 얻었음
'배운 것들 메모 > 따라 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 4.10 scanf() 함수의 사용법 메모 - 1 (0) | 2024.08.20 |
---|---|
[홍정모의 따라하며 배우는 C언어] 4.7 printf() 함수의 변환 지정자들 메모 (0) | 2024.08.19 |
[홍정모의 따라하며 배우는 C언어] 4.5 ~ 4.6 기호적 항수와 전처리기 메모 (0) | 2024.08.12 |
[홍정모의 따라하며 배우는 C언어] 4.4 strlen() 함수 메모 (0) | 2024.08.10 |
[홍정모의 따라하며 배우는 C언어] 1.8 C언어와 함수 ~ 1.9 컴파일러 링커 메모 (0) | 2024.08.07 |