기말 메모 - DKDUD123/ex250310_first GitHub Wiki
자료형 | 크기(바이트) | 범위 또는 특성 | 예시 값 | 포맷 지정자 |
---|---|---|---|---|
char |
1 | -128 ~ 127 또는 0 ~ 255 |
'A' , 65
|
%c , %d
|
int |
4 | 약 -21억 ~ 21억 |
10 , 100
|
%d |
double |
8 | 실수, 더 높은 정밀도 |
3.14 , 4.5
|
%lf , %f
|
float |
4 | 실수, 정밀도 낮음 | 1.23f |
%f |
65 : A
66 : B
67 : C
...
90 : Z
표현 | 의미 | 설명 |
---|---|---|
'A' |
문자 리터럴 | 정수 65 |
"A" |
문자열 리터럴 | char* 타입 주소 |
%c |
문자 출력 | char 또는 int |
%s |
문자열 출력 | char* (주소가 필요함) |
항목 | 문자 'A' | 문자열 "A" |
---|---|---|
자료형 | char |
char[] 또는 char* |
크기 | 1바이트 | 2바이트 ('A' + \0) |
의미 | 하나의 문자 | 문자의 집합 (끝에 \0) |
사용 예 | %c | %s |
메모리 | 숫자 하나 저장 | 주소를 가리키는 포인터 |
표현 | 메모리 모습 | 설명 |
---|---|---|
'A' |
[ A (65) ] |
문자 1개 저장 |
"A" |
[ A (65) ][ \0 (0) ] |
문자 + 문자열 종료 표시 |
char* str | 주소(포인터) → [ A ][\0] |
문자열 첫 칸을 가리키는 포인터 |
#include <stdio.h>
int main() {
char* s = "ABC";
char arr[4] = "ABC";
// s[2] = 'c'; // 위험! 런타임 에러 발생 가능
arr[2] = 'c'; // 정상 작동
printf("%s\n", s); // ABC
printf("%s\n", arr); // ABc
return 0;
}
#include <stdio.h>
int main()
{
char* s = "ABC";
printf("%s %s\n", s, "ABC");// ABC,ABC
printf("%s %s\n", s+1, "ABC"+1);// BC,BC
printf("%c %c\n", s[0], "ABC"[0]);// A,A
printf("%c %c\n", s[1], "ABC"[1]);// B,B
}