계속 질문만 하네요. 코드블럭으로 C 공부하는 잼민이 입니다.
C에서 char형 변수는 용량이 1Byte로 알고 있습니다.
ASCII 코드로 단어가 저장되기에
char C = 65;
printf("%c %d", C, C) ;
하면 출력이 A, 65가 되는것 까지는 이해했습니다.
좀 더 구체적으로 말하자면
00000000 <===요게 2진수 8bit 에서
C에 65가 저장되면
01000001<===이리 되고
문자로 출력하면 A, 10진수로 출력하면 65가 되는거겠죠.
그런데....한 단어 이상 되는 문자는 어떻게 char형에 저장이 되나요?
개인적인 추측이지만, char에 문자저장될때 그 길이를 지정해주고 NULL문자로 끝을 찍어줘야 하니까.
예를 들어 char C[10] 이라고 한다면
C에는 문자의 첫번째 글자만 들어가고 나머지 글자들은 ...C[10]에 저장되는 문장의 첫번째 글자가 들어가는 물리적인 어떤 공간에서 연속적으로 들어가는거 아닌가 합니다.
그래서 NULL문자로 끝을 안 찍어주면 어디서 문장이 끝나는지 모르니 되던안되는 끝까지 출력되는 거고...
혹시 저의 추측이 맞는지요?
(IP보기클릭)70.54.***.***
(IP보기클릭)117.52.***.***
아, 그러니까 실질적으론 C[10]하면 10Byte라는 의미인가요? | 21.12.06 13:21 | |
(IP보기클릭)70.54.***.***
C[10]에 대한 접근은 범위를 벗어나니 고확률로 세크폴트 | 21.12.06 13:21 | |
(IP보기클릭)70.54.***.***
Char array나 문자 배열에 대해 찾아보시면 더 정확한 설명을 보실수 있을 겁니다. | 21.12.06 13:24 | |
(IP보기클릭)70.54.***.***
문장의 끝을 나타내는 심볼을 위해 11byte 일겁니다. | 21.12.06 13:26 | |
(IP보기클릭)211.106.***.***
(IP보기클릭)70.54.***.***
(IP보기클릭)70.54.***.***
돌리시면 아마 이거 비슷하게 나올 겁니다. hello 6 5 Address of example[0] = 0x7ffc0f5eedb2 Address of example[1] = 0x7ffc0f5eedb3 Address of example[2] = 0x7ffc0f5eedb4 Address of example[3] = 0x7ffc0f5eedb5 Address of example[4] = 0x7ffc0f5eedb6 | 21.12.06 13:39 | |
(IP보기클릭)70.54.***.***
크기의 경우 sizeof(example) = 6 => 문자 5byte + 단어의 끝을 알리는 심볼 1byte strlen(example) = 5 => 단어의 길이는 5, 끝을 알리는 심볼은 길이에서 제외 됩니다. 저장되는 방식은 example의 각 부분의 주소를 보시면 알 수 있습니다. 주소를 출력하는 부분을 보시면 알 수 있지만 주소가 연속 되어 있습니다. | 21.12.06 13:42 | |
(IP보기클릭)1.216.***.***
오, 이렇게 알려주시니 확 들어오네요 저는 char는 string이던 letter건 무조건 1byte인줄 알고 있었는데 역시 길이에 따라 유동적이군요. 감사합니다. | 21.12.06 14:20 | |
(IP보기클릭)70.54.***.***
혹시나 해서 하는 말이지만 char 은 1byte 입니다 char [10]은 char 타입 11개(문자10 심볼1)로 구성된 총 11byte의 배열 입니다. | 21.12.06 16:47 | |
(IP보기클릭)211.192.***.***
char [10] 은 10byte 입니다. | 21.12.06 21:04 | |
(IP보기클릭)70.54.***.***
그 끝자리를 알리는 심볼도 들어가지 않나요? | 21.12.07 01:25 | |
(IP보기클릭)70.54.***.***
다시 생각해 보니 그 10byte에 포함이군요. 이런 실수를;; | 21.12.07 01:38 | |
(IP보기클릭)106.101.***.***
(IP보기클릭)70.54.***.***
질문을 하신 분이 아직 배열 관련 내용 배우시지 않으셔서 올리신 질문인 것 같습니다. 저는 질문 내용을 char에 단어나 문장이 어떻게 저장되는 가를 물으신 걸로 이해했습니다. | 21.12.06 14:28 | |
(IP보기클릭)106.101.***.***
네 그런가보네요 제가 질문을 이해를 못하겠어서...;; | 21.12.06 16:14 | |