데이터 영역 : 전역변수
스택 영역 : 지역변수, 매개변수
힙 : malloc에 의한 동적 할당
(true, false)는 (1,0)이 아니다. 값을 요구하는 경우 그에 맞춰서 변환될 뿐.
주소 값을 이용한 Call-by-reference
참조자를 이용한 Call-by-reference
새로 선언되는 변수의 이름 앞에 '&'가 붙으면 참조자를 선언한다
변수를 대상으로만 선언이 가능하다
참조자는 변수와 별도의 개념이다(변수의 별칭)
int num1 = 200; &num2 = num1; // num2와 num1은 같은 메모리 주소를 가리킨다.
함수의 정의를 살펴보지 않는 이상, 함수 호출 시 전달한 지역변수의 변경여부를 알 수 없다.
(*) 매개변수로 참조자를 사용 시, 값을 변경하지 않는다면 const로 선언한다
return은 변수를 대상으로만 가능
어떤 자료형으로 받느냐에 따라 결과가 달라진다.
참조자로 받는 경우 : return-by-reference
기본 자료형으로 받는 경우 : return-by-value
마찬가지로 앞에 const를 붙여줘야 한다
const int num=12;
const int *ptr= #
const int &ref = num;
// int *ptr = (int *) malloc( sizeof(int) * 3);
int *ptr = new int[3];
// free(ptr);
delete []ptr; ```
앞에 C를 붙이고 뒤에 .h를 뺀다 (std에 include된다)
ex) math.h -> cmath
#include <cstdlib> // srand, rand
#include <ctime> // time
srand(time(NULL));
rand() % 100; // 0~100 미만 숫자 뽑기