반응형
숫자 하나 1
숫자의 배열 0 1 2 3 4 5 6 7 8 9
문자 하나 'a'
문자의 배열 'H' 'e' 'L' 'L' 'o' '\0'
- ascii를 사용해서 문자형을 저장한다.
- '\0' 은 문자열의 끝을 알리는 마침표와 같은 개념이다.
연습 코드 1
int main(void)
{
int a = 1;
int int_arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
printf("%i %i %i\n", int_arr[0], int_arr[1], int_arr[9]);
return 0;
}
해당 int_arr[10]이라는 배열을 통해서 배열을 만들어준 것으로
%i
%i는 C 언어에서 사용되는 형식 지정자(format specifier) 중 하나로, 정수를 출력할 때 사용됩니다. %i는 정수를 10진수로 출력하는데 사용되며, %d와 동일한 기능을 수행합니다.
대부분의 프로그래밍 언어는 int_arr[0]은 0에서 시작한다.
출력하면 각 0, 1, 9가 나온다.
연습코드 2
int main(void)
{
char c = 'a';
char str1[10] = "Hello"; //null character
char str2[10] = { 'H', 'i' };
printf("%c\n", c);
printf("%s\n", str1);
printf("%s\n", str2);
return 0;
}
해당 내용은 각 세개를 출력하는 건데 특이점으로는 char 은 1 byte이므로 하나의 문자만 가지지만 char str[10]을 해주면서 10byte가 늘었지만 항상 뒤에 '\0'이 있기 때문에 9개만 가질 수 있다는 점이다.
해당 내용을 출력하면 정상적으로 다 작동한다.
int main(void)
{
char c = 'a';
char str1[10] = "Hello"; //null character
char str2[10] = { 'H', 'i' };
printf("%c\n", c);
printf("%s\n", str1);
printf("%s\n", str2);
printf("%hhi %hhi %hhi %hhi %hhi\n",
str2[0], str2[1], str2[2], str2[3], str2[4]);
return 0;
}
위는 코드에서 %hhi를 출력하는 것이다.
%hhi는 c언어의 signed char 타입의 변수를 10진수로 나타내주는 형식자이다.
따라서 해당 내용을 출력하면
str2[0] 에서는 H 를 10진수로
str2[1]에서는 i를 10진수로
그리고 나머지는 Null 값이 나오게 된다.
printf 에서 null character을 만나면 그 즉시 중지한다.
반응형
'IT 프로그래밍' 카테고리의 다른 글
[따배시] 4.7 printf 함수의 변환 지정자들 (0) | 2024.01.05 |
---|---|
[따배시] 4.5 기호적 상수와 전처리기 (0) | 2024.01.05 |
[따배시] 4.4 strlen() 함수 (0) | 2024.01.05 |
[따배시] 4.2 sizeof 연산자 강의 노트 (0) | 2024.01.05 |
[따배시] 4.1 문자열 입출력하기 (0) | 2024.01.05 |