◆입력을 받는 방법들
- cin << : 공백 이전까지의 문자열을 받아들입니다.
- cin.get() : 문자 하나만 입력이 가능하되, 개행이나 줄넘김도 받아들입니다.
- cin.getline(인자, 최대 크기) : 문자열을 받아들입니다. 공백 줄넘김 탭을 '₩0'로 받아들여 끝내는걸 막기위해 사용합니다.
- getline(cin, string변수) : #include 을 하여 cin에 string의 정의되어 있지 않은 문자열 입력을 실행합니다.
◆배열과 포인터의 차이
- 배열 이름은 값을 변경할 수 없는 상수이고, 포인터는 값을 변경할 수 있는 변수이다.
- 배열의 주소를 얻는 것은 배열의 이름을 얻는 것과는 다르다.
- &배열이름은 전체 배열의 주소가 산출된다.
- 배열이름 +1을 해주게 되면, 자료형의 크기가 아닌 배열의 길이만큼 더해진다.
- 배열 이름으로 포인터를 선언하려면??
- cout에 포인터를 전달하면 주소가 출력되나 char *은 예외이니 (int *)로 캐스팅해주어야한다.
- 배열에 문자열을 대입할 때에는 대입연산자가 아니라 strcpy나 strncpy을 사용하자
◆자동 공간, 정적 공간, 동적 공간
●자동 공간(automatic storage)
- 함수가 호출되는 순간에 자동으로 생겨나 그 함수가 종료되는 시점까지만 존재한다는 것을 뜻한다.
- 스택에 저장된다.
●정적 공간(static storage)
- 프로그램이 실행되는 동안에 지속적으로 존재하는 공간이다.
- 만드는 방법은 함수의 외부에서 변수를 정의하거나, 변수를 선언할 때 static이라는 키워드를 붙인다
●동적 공간(dynamic starage)
- new와 delete를 사용하여 작성한다.
- 자유 공간(free store)이라 부르는 메모리 풀(memory pool)을 관리한다.
- 더 복잡한 메모리 대입 요청을 처리할 수 있다.
'C++ > C++' 카테고리의 다른 글
6장 조건문 (0) | 2023.07.02 |
---|---|
5장 반복문과 cin 메모 (0) | 2023.07.01 |
[C++] 람다 함수 (0) | 2023.02.17 |
[C++] 파일 입출력 (0) | 2023.02.16 |
[C++] STL 자료구조 (0) | 2023.02.16 |