> 백엔드 개발 > C++ > C/C의 char** 이해하기

C/C의 char** 이해하기

Linda Hamilton
풀어 주다: 2024-10-10 06:13:30
원래의
1024명이 탐색했습니다.

Understanding char** in C/C

C 및 C에서 char**는 char 유형의 포인터에 대한 포인터입니다. 일반적으로 명령줄 인수(argv), 동적 문자열 배열 또는 각 행이 문자열인 2D 배열과 같은 문자열 배열을 나타내는 데 사용됩니다. 처음에는 혼란스럽겠지만 몇 가지 예를 통해 "문자열 테이블"을 처리하는 것과 유사하게 작동하는 방식을 확인할 수 있습니다.

char* *란 무엇입니까?
char*는 단일 문자열을 나타내는 char에 대한 포인터입니다.
char**는 char*에 대한 포인터입니다. 즉, 문자열 배열(또는 char* 포인터 배열)을 가리킵니다.

예:

#include <stdio.h>

int main() {
    char* strings[] = {"I love", "Embedded", "Systems"};

    // Create a char** pointer to the strings array
    char** string_ptr = strings;

    // Access and print the strings using char**
    for (int i = 0; i < 3; i++) {
        printf("%s\n", string_ptr[i]);
    }

    return 0;
}
로그인 후 복사

분류:

  • char* strings[]: strings라는 배열을 선언합니다. 각 요소는 문자(char*)를 가리키며 본질적으로 문자열 배열을 형성합니다.
  • {"I love", "Embedded", "Systems"}: 메모리에 문자 배열로 저장된 문자열 리터럴을 사용하여 문자열 배열을 초기화합니다. 컴파일러는 이러한 리터럴을 배열 요소에 할당된 char* 포인터로 변환합니다.

시각적 표현:

Main Index (char**) → String 1 (char*) → "I love"
                   → String 2 (char*) → "Embedded"
                   → String 3 (char*) → "Systems"
로그인 후 복사

핵심 사항:

  • strings는 문자 배열이 아닌 문자열에 대한 포인터 배열입니다.
  • 배열의 각 요소는 문자열 리터럴의 첫 번째 문자를 가리킵니다.
  • 포인터 연산이나 배열 인덱싱을 사용하여 문자열 내의 개별 문자를 조작할 수 있습니다.

결론:

  • char**는 "문자열 테이블"과 마찬가지로 문자열 배열에 대한 포인터입니다.
  • 각 문자열(행)에 메모리가 별도로 할당되어 각 문자열을 개별적으로 작업할 수 있습니다.
  • char**는 원래 포인터 배열에 대한 참조를 전달하므로 함수는 문자열의 내용을 수정할 수 있습니다.

char** 작업은 C/C에서 동적 배열, 명령줄 인수 또는 다차원 문자열 배열을 처리할 때 강력합니다. 구조를 이해하면 프로그램에서 문자열 배열을 관리하는 프로세스가 단순화됩니다.

위 내용은 C/C의 char** 이해하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿