반응형 문자열2 C언어 - 문자열과 포인터 문자열은 포인터 변수로 굉장히 많이 사용합니다. 일반적은 문자 배열과 다른 면을 비교해보겠습니다. *리터럴(literal)이란 변하지않는 데이터를 뜻합니다. 프로그램이 실행돼도 정대 변하지 않습니다. ex) int a=1; 에서 1이 리터럴입니다. 리터럴도 결국에는 메모리를 사용합니다. 포인터 변수는 메모리의 주소값을 저장하는 방식의 변수입니다. char *st = "안녕하세요"; 포인터는 선언과 초기화를 동시에도 하지만 char *st2; st2 = "어서오세요"; 선언 후 나중에 대입이 가능합니다. 변수처럼 값을 변경하는게 아닌 포인터 변수는 주소를 변경한다는 의미라 중간에 새롭게 리터럴(literal) 문자열을 대입할 수 있습니다. 포인터 변수에 저장된 리터럴 문자열은 읽기전용입니다. 그렇기 때문에.. 공부 자료실/C언어 2020. 6. 29. C언어 - 문자열 C언어에서 문자열은 문자의 배열로 저장합니다. 문자열의 표현은 "" 큰따옴표로 합니다. char st[11] = "안녕하세요"; 문자의 배열이기 때문에 문자 하나씩 저장할 수 있습니다. char st[5] = { 'a', 'b', 'c', 'd', '\0'}; 여기서 한가지 중요한 건 한글은 한 글자에 2byte씩 차지합니다. "안녕하세요"는 5글자로 5X2=10 을 차지합니다. 하지만 배열의 크기를 11로 선언했습니다. 위에서도 보면 문자열은 저장할때 마지막에 NULL(\0)을 붙여야 합니다. 하지만 저장하는 문자열보다 크게 배열의 크기를 선언하면 자동으로 NULL(\0)이 채워지기때문에 저장할 문자열보다 배열을 크기 선언하면 됩니다. 만약 필요한 문자열이 얼마 큼의 배열의 크기를 해야 할지 모른다면 .. 공부 자료실/C언어 2020. 6. 29. 이전 1 다음 반응형