답변 2
0
안녕하세요, 아래에서 같은 답변을 드렸습니다만
C언어에서는 문자열 형태의 포인터가 문자열의 시작 주소를 가리킵니다.
그렇게 문자열의 시작만 주면 표현하는 방식에 따라서 원하는 대로 출력할 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 이충규님.
C 언어에서 문자열이 함수로 전달되는 방식에 대한 질문을 주셨네요. 이와 같은 경우, 문자열을 포인터로 다루는 방식을 이해하시면 많은 도움이 될 것 같습니다.
char myString[]
형태로 선언된 문자열은 배열의 첫 번째 요소의 주소값을 가리키는 포인터로 변환됩니다.printString(myString);
호출 시 myString
은 배열 이름이며, 배열의 시작 주소를 가리키고 있는 포인터로 자동 변환됩니다.이를 통해 printString
함수의 매개변수는 문자열의 시작 주소를 가리키는 포인터를 받습니다. 이렇게 함으로써 실제로 문자열 자체를 복사하지 않고도 함수를 통해 문자열의 내용을 처리할 수 있습니다. 따라서 printf
함수 내부에서 %s
를 사용하여 이 주소로부터 문자열의 내용을 출력할 수 있습니다.
관련된 기존의 질문 및 답변 내용을 참고하면 이 주제에 대해 더 깊이 이해할 수 있을 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.