포인터 문자열 예제

마지막 장에서는 할당 연산자 (=)를 사용하여 2-D 문자 배열에 새 문자열을 할당 할 수 없다는 것을 배웠습니다. 문자열 str의 각 문자는 메모리 공간의 1바이트를 차지합니다. 예제 2 (함수에서 문자열을 반환하려고) 아래 프로그램은 문자열이 공유 세그먼트에 저장되고 저장된 데이터가 getString() *str의 반환 후에도 그대로 유지됨에 따라 완벽하게 작동합니다. 포인터-문자열”. 그런 다음 strlen()은 for 루프를 사용하여 반복을 수행하는 문자열의 길이를 찾는 데 사용되며 변수 이름 *str을 사용하여 전체 문자 저장소를 인쇄합니다. 포인터 배열이 가리키는 값에 액세스하고 인쇄하려면 다음 예제와 같이 루프의 도움을 받아 보겠습니다. 여기서는 두 개의 변수가 있으며 str은 문자열 변수이고 ptr은 문자열 변수 str을 가리키는 문자 포인터입니다. 위의 이미지에서 문자열 “Hello”는 메모리 위치 5000에서 5005까지 저장됩니다. 스포츠 배열의 각 요소는 문자열 리터럴이며 문자열 리터럴이 첫 번째 문자의 기본 주소를 가리키기 때문에 스포츠 배열의 각 요소의 기본 형식은 char 또는 (char*)에 대한 포인터입니다. 문자열의 요소에 액세스하고 인쇄하려면 루프를 사용하고 null 문자를 확인할 수 있습니다. 동일한 표기법은 단일 문자 또는 null 종료 된 문자열의 첫 번째 문자를 가리키는 데 사용 됩니다. 문자열은 배열에 저장된 문자 의 시퀀스입니다. 문자열은 항상 null(“) 문자로 끝납니다.

단순히 문자열 그룹을 형성하고 문자열 그룹은 문장을 형성합니다. 문자 또는 문자열 배열에 대한 포인터는 다음과 같이 보일 수 있습니다 : 우선 str에서 문자열을 읽은 다음 ptr = str을 사용하여 str의 기본 주소를 문자 포인터 ptr에 할당하거나 ptr = &str[0]을 사용하여 수행 할 수도 있습니다. 위의 줄에서 “GfG”는 공유 읽기 전용 위치에 저장되지만 포인터 str은 읽기 쓰기 메모리에 저장됩니다. str을 다른 지점으로 변경할 수 있지만 현재 str에서는 값을 변경할 수 없습니다. 따라서 이러한 종류의 문자열은 프로그램의 이후 단계에서 문자열을 수정하지 않으려는 경우에만 사용해야 합니다. 문자열은 배열에 저장하는 일련의 문자임을 알고 있습니다. C 프로그래밍 언어에서 null 문자는 문자열의 끝을 표시합니다. 예제 1 (문자열 수정 시도) 아래 프로그램은 충돌 할 수 있습니다 (분할 오류 오류를 제공) 라인 *(str+1) = `n`읽기 전용 메모리를 작성하려고하기 때문에. 문자열이 문자 배열로 선언되면 다른 유형의 배열과 C처럼 저장됩니다. 예를 들어 str[]이 자동 변수인 경우 문자열이 스택 세그먼트에 저장되고 전역 변수또는 정적 변수인 경우 데이터 세그먼트 등에 저장됩니다. 마지막 장에서는 문자열 배열 또는 2-D 문자 배열을 사용하는 방법을 배웠습니다.