[열혈 C++] Chapter 2

3058 단어 cppcpp
  • 메모리 영역

    데이터 영역 : 전역변수
    스택 영역 : 지역변수, 매개변수
    힙 : 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를 붙여줘야 한다

    const int num=12;
    const int *ptr= #
    const int &ref = num;

  • C++에선 new-delete를 사용한다

    // int *ptr = (int *) malloc( sizeof(int) * 3);
    int *ptr = new int[3];
    
    // free(ptr);
    delete []ptr; ```
  • C언어의 라이브러리 이용

    앞에 C를 붙이고 뒤에 .h를 뺀다 (std에 include된다)
    ex) math.h -> cmath

  • 난수 생성

    #include <cstdlib>		// srand, rand
    #include <ctime>		// time
    
    srand(time(NULL));
    rand() % 100;   // 0~100 미만 숫자 뽑기

좋은 웹페이지 즐겨찾기