메모리주소를 값으로 가져야 하는 이유?
- 변수의 접근이나 제어가 불가능한 영역에서 해당 변수에 접근해서 값을 제어하고 싶을 때
- 동적할당(new)을 통해서 런타임(실행시간) 때 메모리에 할당되는 변수를 제어하기 위해서
동적할당(new 키워드, delete 키워드)
1) 개념 : 힙메모리 자료를 저장할 공간을 할당받는 것
힙메모리와 스택메모리
스택 : 특정 코드 구문 내에서 {...} 임시로 할당되는 메모리영역
힙 : 프로그래머가 자유롭게 할당하고 해제할 수 있는 메모리 영역
- 데이터의 크기가 일정하지 않은 형태의 자료형
- 서로 다른 코드 구문 { } { } 사이의 변수 값을 제어하고 싶을 때
참조 : 포인터가 가리키고 있는ㄷ(담고 있다) 메모리 주소의 값에 접근하는 것
1. 다음 보기 중에서 알맞지 않게 짝지어진 것을 고르시오.
- short : 2byte
- int :4byte
- long long : 4byte
- long double : 8byte
2. 다음 C++ 에 관한 설명 중 알맞지 않은 것은?
- C언어 프로그램을 그대로 사용 할 수 있다.
- C++ 은 객체지향만 사용하는 언어이다.
- C++ 은 하드웨어에 접근할 수 있다.
- 고성능의 게임이나 인공지능, 장치 드라이버에 적합하다.
3. 16.0 / 2 의 계산 결과는?
4. 포인터는 변수인가? (예, 아니오 로 대답)
5. 아래처럼 선언된 포인터가 있다. 이 포인터의 크기는? (컴퓨터는 64비트 이다.)
double* p;
6. 아래 코드에서 cout 을 하면 나오는 값은?
#include <iostream>
using namespace std;
int main()
{
int a[5] = {0,1,2,3,4};
int* p = a;
cout << (*(p++)+1);
return 0;
}