C언어
c++ 공부 요점 정리 2
뮹실이
2013. 11. 11. 20:20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | // 5 편의를 위한 using 선언 // A_COM이라는 이름공간안에 정의된 "func"함수를 콜 // 할때는 "A_COM::func" 대신 "func"으로만 사용 using A_COM::func; // A_COM이라는 이름공간안에 정의된 변수 및 함수 전체를 // 그냥 사용하겠다 using ; // 범위 지정 연산자 기반 전역변수 접근 int val = 100; int // 6 들어가기에 앞서서 // const 키워드의 의미 // : 변수를 상수화 시킴 // 데이터 상수화, n이 가리키는 메모리 공간의 값을 상수화 // n이라는 포인터를 이용해 값을 변경하는 것을 막는것 const int* n; // 포인터 상수화, n이 가리키는 곳을 바꿀수 없다 int* const n; // n이 가리키는 곳과 가리키는 곳의 값을 바꿀수 없다 const int* const n; // ex // 운영체제는 프로그램이 실행되면 메모리를 할당 // 메모리를 효율적으로 사용하기 위해 용도에 맞게 나눔 // 데이터 영역, 힙(heap) 영역, 스택(stack) 영역 // 데이터 영역 : 프로그램 시작과 동시에 할당되어 // 프로그램 종료되어야지만 할당해제되는 영역 // 전역변수, static 변수가 여기에 해당됨 // static 변수는 프로그램 시작과 동시에 // 데이터 영역에 할당되고 static 이 선언된 // 함수가 콜되면 static 변수가 초기화 되는것임 // 힙(heap) 영역 : 런타임의 크기가 결정되는 변수나 // 배열과 같은 것을 저장하기 위한 공간 // and 프로그래머가 할당할 수 있음(관리) // (malloc, free함수를 이용해서) // 스택(stack) 영역 : 컴파일 타임의 크기가 결정될수 있는 // 것들을 메모리 공간에 올리기 위한 공간 // 지역변수, 매개변수가 여기에 해당 void // main 함수에서 요구되는 메모리는 int 형인 4바이트가 필요 // 즉 컴파일시에 요구되는 메모리 공간의 크기 결정가능 void // 컴파일시에 func에서 요구되는 메모리 공간의 크기를 // 결정할 수 없음 // i 값은 입력에 따라 다르므로 // 컴파일시에 알수 없고 런타임시 알수 있음 // 즉 힙영역에 올라감 void // end of ex // 7 자료형 bool // 자료형 bool : 기본 자료형 // true(참), false(거짓) 중의 하나의 값을 지님 // int 형으로 형 변환시 1 or 0이 됨 // 레퍼런스(reference)의 이해 // 이름을 지니는 대상에 별명을 붙여주는 행위 // // 변수 : 메모리 공간에 붙은 이름 // 하나의 메모리 공간에 하나의 변수만 붙여줄수 있었지만 // c++에서는 하나의 메모리 공간에 둘이상의 변수를 붙여 // 줄수 있다. 이것이 레퍼런스의 기본 문법적 요소이다. // & : c에서는 주소값을 얻기 위한 용도로 사용됨 // c++에서는 레퍼런스 선언을 위한 용도로도 // 사용될수 있음 // p를 포인터로 선언 int *p; // p라는 포인터가 가리키는 값을 참조하겠다는 의미 *p; // 레퍼런스 선언 int &p; // p의 주소값을 반환하라는 의미 &p; // int 형 변수를 참조할 수 있는 // ref를 레퍼런스로 선언하겠다. // 즉 val가리키는 공간에 ref라는 이름을 // 하나 더 붙여라는 의미 int val = 10; int &ref = val; int *pVal = &val; // 주소값을 얻기 위해 & 연산자 사용 int &rVal = val; // 레퍼런스 선언을 위해 & 연산자 사용 // val이 가리키는 값과 rVal이 가리키는 // 값은 같음 // b라는 이름을 가진 메모리에 c라는 이름도 부여해 // 한 메모리공간에 b, c의 이름을 가지게됨 char b; char &c = b; |