String 클래스를 공부하기 전에 먼저 const와 static의 개념을 마스터하고 이 클래스를 공부하겠습니다.
1. 상수
나는 그것이 값을 불변으로 만드는 것 같아요 …
이 유형이 부착된 위치에 따라 “어떤 값”이 불변이 됩니다.
아래 참조
#include <iostream>
#include <cstring> //const는 위치마다 다 쓰임이 다름
using namespace std;
const int a =1;// 값은 불변, 아래에서 값을 바꿔주려고 하면 error
const int b; //
int func(const int c){ //함수 내에서 값이 (int 값) 으로 계속 유지
return c;
}
int main(){
int value1,value2=3;
const int * ptr1 = &value1; // 매개변수를 포인터(value값의 주소)로 받아옴 -> const(불변값)=pointer(메모리의 주소, 장소값) ?
int * const ptr2 = &value2; // 위 아래 다른 점은?
// 위에는 ptr에 *를 붙혀 메모리 주소 할당+const 는 int에 붙었기 때문에 ptr1은 가변!
// 아래는 const ptr이라고 명시, 따라서 변경 가능하지만 앞에 인자때문에 불변!
}
댓글을 달았다는 것을 이해하고 계속합니다.
자세한 설명은 여기!!
그런 다음 위의 코드에서. 상수가 붙는 위치에 따라 뭔가 바뀔 수 있는데 그게 무슨 뜻인지 헷갈릴 수 있습니다.
const int *ptr -> int형에 붙기 때문에 데이터형의 값은 불변이다.
int * const ptr -> *ptr의 값은 ptr 앞에 오기 때문에 변경할 수 없습니다.
너는 추측 할 수있다.
그 다음에
포인터와 값을 모두 일정하게 하려면 어떻게 해야 합니까? 둘 다에 충실
const int * const ptr = &value
(찾아보니 int const 로 대체할 수 있다고 나와있는데 헷갈려서 int 앞에 붙일게요)
const가 어떤 역할을 하고 어디에 붙었는지에 따라 그 값이 무엇인지 대략적으로 알 수 있을 것 같습니다.
2. 정적
– 전역 변수(멤버): 함수 외부에서 호출되는 변수(멤버)
– 지역 변수(멤버): 함수 내에서 호출되는 변수(멤버)
메모리 영역은 아래 그림과 같이 할당됩니다.

정적은 무엇을합니까?
정적인 것을 의미하므로 생각해보면 동적인 것과 반대되는 의미가 있습니다.
정적을 앞에 추가하면 정적이기 때문에 ‘데이터’만 있습니다.
일반적으로 정적 지역 변수, 즉 지역 변수에 연결됩니다.
위의 이미지와 관련하여 변수에 대한 메모리는 함수가 종료되면 무효화됩니다. 더 드래그하려면 어떻게 해야 할까요?
정적을 사용하십시오.
정적이 해변 변수에 대한 메모리를 무효화하는 것을 막는 것으로 생각하십시오.
따라서 클래스나 외부 함수에서 자주 사용됩니다.
메모리 초기화를 피하십시오! 당신은 그것을 기억해야합니다!
