문자열 null
미르
2023.04.01
질문 제목 : 문자열 null문자열의 길이를 선언한 후에 길이보다 짧은 문자열을 입력을 하면, 나머지 길이에는 어떤 것이 저장이 될까 하고 실험을 하였는데 null이 저장된다느 사실을 알았습니다. 그러나 null의 아스키코드는 0인데도, -52가 나옵니다. 왜 그런걸까요..질문 내용 :
str[31]은 널문자이면서 -52가 나오구여,str[6]도 널문자이면서 0 이나오네여. 왜 둘이 아스키코드가 다를까여.
-
두힘
덧, 문자열 데이터의 끝을 0으로 표시하긴 하지만..
그 이후의 부분은 굳이 내용을 무엇인가 써주진 않습니다.
-52는 원래 메모리에 있던 데이터 내용인 것이죠.
참고로 나머지 부분에 무엇이 들어갈지는 알수 없다. 가 정답입니다.
단지 유효한 값의 끝만 null로 표시할 뿐... 이전에 그 부분을 할당받은 프로그램이 무엇을 썼는지 알수없죠
그래서 초기화가 필요한것이구요. -
흰꽃
NULL 문자는 0 이 맞습니다. -52는 쓰레기 값이라고 보시면 됩니다.
간단하게 아래와 같이 해보세요
char str[10];
printf(\문장입력 : \);
gets(str);
for(int i=0; i10;i++)
{
printf(\%d \