중화사전망 - 서예자전 - C 언어의 문자열에 대한 여러 정의 방법 및 설명.

C 언어의 문자열에 대한 여러 정의 방법 및 설명.

C 에는 문자열 상수, 문자 배열 및 문자 포인터와 같은 여러 형태의 문자열이 정의되어 있습니다.

1. 문자열 상수

즉, 한 쌍의 이중 괄호 안에 있는 모든 문자입니다. 컴파일러에서 자동으로 제공하는 큰따옴표 및 종료 플래그 \0 문자는 다음과 같이 사용됩니다

문자열은 메모리에 저장됩니다. 예: printf ('%s',' hello'); //"안녕하세요"

문자열 텍스트 중간에 공백이 없거나 공백에 공백 문자가 있는 경우 ANSI C 는 해당 문자를 연결합니다. 예:

Char 인사말 [50] = "안녕하세요" 와 "안녕하세요";

다음과 같습니다.

차 인사말 [50] = "안녕하세요, 안녕하세요";

문자열 상수는 정적 저장소 클래스에 속합니다. 정적 저장은 함수가 여러 번 호출되더라도 함수에서 문자열 상수를 사용하는 것을 의미합니다.

이 문자열은 프로그램을 실행하는 동안 한 번만 저장됩니다. 전체 인용 부호의 내용은 문자열 저장 위치에 대한 포인터 역할을 합니다. 이것은

배열 이름을 배열 저장 위치에 대한 포인터로 사용하는 것은 비슷합니다.

2. 문자열 배열 및 해당 초기화

초기화 예:

Char m [40] = "안녕, 세상"; //문자열 배열을 정의할 때 배열 크기 (정수 상수) 를 지정해야 합니다. 크기를 지정할 때 컴파일러에서 자동으로 "\0" 을 추가하므로 배열 크기가 미리 결정된 값보다 큰지 확인합니다.

//추가 요소는 "\0" 으로 초기화됩니다

Char m = {'h',' e',' l',' \ 0'}; //기호 끝에 있는 빈 문자를 확인합니다. 만약 그것이 없다면, 문자열이 아닌 문자 배열만 얻을 수 있다.

3. 문자 포인터를 사용하여 문자열을 정의합니다.

Char *m = "안녕, 세상"; //자동으로 "\0" 추가

참고: 이 시점에서 문자열 포인터 m 은 문자열 상수를 가리키므로 * (m+1) =' o' 로 수정할 수 없습니다. 이 문자열 상수를 상수 영역에 배치하면 수정할 수 없기 때문입니다.

4. 배열 및 포인터

배열 형식과 포인터 형식의 차이점은 무엇입니까?

배열 형식: Char m [40] = "헬로, World";

포인터 형식: char * m =“hello, world ";

배열 형식:

컴파일러는 배열 & ampm 을 배열 & 로 취급합니다 첫 번째 요소의 주소입니다. M [0] 의 동의어입니다. 여기서 m 은 주소 상수입니다. M+ 1 을 사용하여 배열의 다음 요소를 식별할 수 있지만++m. 증분 연산자는 변수 이전에만 사용할 수 있으며 상수 앞에는 사용할 수 없습니다.

M [40] 은 컴퓨터 메모리에 40 개의 요소가 포함된 배열을 할당합니다. 각 요소는 한 문자에 해당하고 다른 요소는 끝에 있는 빈 문자 "\0" 에 해당합니다. 각 요소는 해당 문자로 초기화됩니다.

일반적으로 참조된 문자열은 실행 파일의 데이터 세그먼트에 저장됩니다. 프로그램이 메모리에 로드되면 문자열도 메모리에 로드되고 참조된 문자열이 배열에 복사됩니다.

포인터 형식:

포인터 형식 (*m) 도 정적 저장소 영역에 문자열 공간을 확보합니다. 또한 프로그램 실행이 시작되면 문자열 주소를 해당 포인터 변수에 저장할 수 있도록 포인터 변수 M 에 대한 다른 저장 위치를 유지해야 합니다.

M 은 문자열의 첫 번째 문자를 가리키고 ++m 은 두 번째 문자를 가리키는 데 사용할 수 있습니다. 포인터 m 은 변수입니다.