ㅏ 끈 단일 문자 또는 여러 문자로 구성된 일련의 문자이며 컴퓨터 프로그래밍에서 중요한 데이터 구조입니다. 작업할 때 문자열 C에서는 특정 작업을 수행해야 합니다. 끈 초기화와 같은 데이터 유형 끈 , 콘텐츠 할당, 연결 문자열 , 비교 문자열 , 그리고 끈 .
이 문서는 다음 작업 중 하나에 중점을 둡니다. 끈 반환하는 데이터 구조 끈 C 함수에서.
C 함수에서 문자열 반환
처럼 끈 는 문자 배열이며 C 함수에서 문자열을 반환하려면 문자열 데이터 구조에 대한 포인터를 호출 함수에서 매개 변수로 호출된 함수에 인수로 전달해야 합니다. 그런 다음 포인터를 사용하여 문자 배열을 가리킬 수 있습니다. 포인터가 문자 배열을 가리키면 끈 return 문을 사용하여 호출된 함수에서 값을 반환할 수 있습니다.
더 나은 이해를 위해 아래 주어진 예를 볼 수 있습니다.
#include
상수 문자 * 내 이름 ( ) {
반품 '남자' ;
}
정수 메인 ( 무효의 ) {
printf ( '%에스' , 내 이름 ( ) ) ;
}
위의 코드에서는 평소처럼 변수를 선언하는 대신 포인터를 사용하여 이 문자열을 반환할 때 오류가 발생하지 않도록 했습니다.
산출
C 함수는 끈 함수 실행이 완료되면 변수가 즉시 제거(해제)되어 사용할 수 없게 되고 아래와 같이 경고가 발생하기 때문에 로컬 변수로 지정되었습니다.
const char myName ( ) {
문자 이름 = '남자' ;
반품 이름;
}
정수 메인 ( 무효의 ) {
printf ( '%에스' , 내 이름 ( ) ) ;
}
이 코드에서 경고 문자열이 반환될 때 트리거됩니다. 없이 모든 포인터.
산출
따라서 다음과 같은 방법으로 코드를 작성할 수 있습니다.
상수 문자 * 내 이름 ( ) {
숯 * 이름 = '남자' ;
반품 이름;
}
정수 메인 ( 무효의 ) {
printf ( '%에스' , 내 이름 ( ) ) ;
}
산출
변수는 기본적으로 스택에 할당되는데, 이것이 위 문장의 실제 이유입니다. 그러나 포인터가 선언되면 포인터가 가리키는 값이 힙에 할당되며 함수가 완료된 후에도 지워지지 않습니다. 메모리가 할당되면, 끈 포인터가 가리키는 원래 메모리 위치에서 생성되어야 하며 복사본은 호출된 함수에서 반환되어야 합니다. 그러면 호출 함수는 원래 문자열 데이터를 제어할 수 있으며 호출된 함수는 할당된 공간을 확보할 책임이 있습니다.
결론
C 함수는 다음에 대한 포인터를 취할 수 있습니다. 끈 인수로 반환 끈 호출된 함수 내에서 수행된 작업의 결과 값입니다. 이를 달성하기 위한 접근 방식은 char* 포인터를 사용하는 것입니다. 호출하는 함수는 데이터를 저장하기 위해 할당된 메모리를 담당합니다. 끈 , 호출된 함수는 할당된 공간을 해제하는 역할을 합니다.