문자, 문자열

Kimbab1004·2024년 7월 28일
0

CPP

목록 보기
18/27

문자

문자 - 데이터 숫자를 아스키코드표에 대응해서 문자로 표현

C++에서는 char 자료형을 사용하여 문자를 표현합니다. char는 1바이트 크기의 자료형으로, ASCII 코드에 따라 256가지의 문자를 나타낼 수 있습니다.

char letter = 'A';

문자열

문자열, 연속된 메모리 공간에 문자를 나열한다. 문자열의 끝에는 반드시 null 문자가 추가되는데 이는 문자열의 끝을 알리는 용도이다.

문자열의 주소를 받아오고 이 문자열의 주소는 ROM(Read Only Memory)에 저장되어 있기 때문에 직접 접근하여 수정이 불가능하다.

	const char* pString = "abcdef";
    
    //안됨!
    //pString[0] = 'j'; 

수정이 가능하게 하려면 문자열을 배열로 복사하여 지역 변수(스택 메모리)나 동적 메모리(힙 메모리)에 저장하는 방법이 있다.

char szName[7] = "abcdef";

동적 할당을 사용하게 되면 동적 할당한 변수는 힙 메모리에 저장된다. 이 때도 문자열 자체의 주소는 ROM에 저장되어 있지만 동적 할당을 하면서 힙 메모리에 문자열을 배열로 복사해 할당하기에 스택 메모리를 이용하는 것과 비슷한 로직이라고 이해하면 된다.

#include <iostream>
#include <cstring>

void example() {
    const char* originalString = "abcdef";
    char* heapString = new char[strlen(originalString) + 1];  // 힙 메모리에 저장
    strcpy(heapString, originalString);
    heapString[0] = 'j';  // 수정 가능
    std::cout << heapString << std::endl;
    delete[] heapString;  // 메모리 해제
}

0개의 댓글