본문 바로가기

프로그래밍 언어/C++34

참조(&) 기초 1. 참조 형식                              2. 참조 특징                             3. pointer (*) vs reference (&) 참조 형식[TYPE]& [참조 이름]= [참조할 변수];참조(Reference) 또한 포인터와 어셈블리어 연산 과정은 동일하다 (포인터가 주소를 가리키는 부분이 추가 되어있는 것 뿐...)어셈블리어 (값 변경 과정)[Pointer]1. pointer 저장된 주소로 이동 (int *ptr)2. 이동된 주소의 값을 수정 (*ptr = [원하는 값] )[Reference]1. 참조할 변수의 주소를 타고 이동2. 이동된 주소의 값을 수정 (int &ref = [참조할 변수] )3. ref = 10; // 참조할 변수의 값 .. 2024. 7. 1.
포인터 기초 1. 포인터 선언2. 포인터 특징3. 포인터 연산 포인터 선언 TYPE * [포인터 이름] = [주소값];TYPE : int, double, class, 객체 등등...포인터 이름 : 원하는 이름 ( 대체로 pointer의 약자 "ptr"을 이용)주소값 : 포인터가 가리킬 값의 주소  포인터 특징포인터의 크기 : 4 Byte (32bit)  / 8 Byte (64bit)주소값의 크기가 64비트의 컴퓨터의 경우 8바이트를 차지함 포인터가 원하는 주소값의 Type과 일치해야함int num = 10;double *ptr = # // 불가능 함수 인자로서 사용 가능함수 인자로 사용할경우 값을 복사해서 사용하는 것이 아닌, 원본값 그대로 사용void Test(int *num){    // 함수 바디    .. 2024. 7. 1.
함수 기본 ( C++ ) 1. 함수 형식                    2. 함수 오버로딩             3. 함수 호출 스택              함수 형식[반환값] [함수이름] ( [ 인자값 ], ... )  {        [ 함수 몸체 ]            return [반환값];}반환값 : int, double, string, 클래스 등.. , 함수의 계산 결과에 따른 결과값 반환함수이름 : 함수의 이름 ( 같은 함수를 재정의 하려면, 오버라이딩 혹은 오버로딩을 해야함 )오버로딩 : 서로다른 인자를 가진 같은 이름을 가진 함수오버라이딩 : 상위 클래스 존재하며, 해당 클래스의 함수를 재정의 ( 함수이름, 인자 동일 -> 함수 본체 내용만 다름 )인자값 : int, double, string, 클래스, 포인.. 2024. 7. 1.
enum enum (열거형) 열거형상수를 정의하고, (default 값) 순차적으로 정의되어있는 수들을 그룹화하는 방법원하는 숫자를 지정할 수도 있다.enum class- 일반 enum 과는 다른 점이 있다. (C++11 이후)- 일반 enum의 경우, int 범위 내의 상수를 가진다 (이름만으로 상수에 접근이 가능하다)- enum class의 경우, 열거형 상수는 '[enumName]::[상수Name] 형식으로 접근해야하며 명확히 구분된다 (같은 상수 이름을 가지더라도 문제가 되지 않는다) enum Color{ RED, // 0 GREEN, // 1 BLUE // 2};//숫자 지정 가능enum Status{ ACTIVE =1, INACTIVE = 4, PENDING = 2};/.. 2024. 6. 21.
Define( + inline , constexpr) Define ( + inline , constexpr) Define#DEFINE [변수명] (기능)- 변수명 : 왠만하면 대문자로 표기 ( ex) #define TEST_COUNT 0 )- 기능 : 해당 부분은 상수값을 표현한다기 보다는 기능을 랩핑하는쪽에 가까움( ex) #define TEST_FUNC std::cout 1. 상수 정의기const를 사용하듯, 상수를 전처리 단계에서 설정함 ( 매크로를 이용하여 )#define MAX_SIZE 1002. 함수 형태의 매크로  함수형태의 매크로를 사용시에 괄호 ( "()" )를 사용하지 않아도 되나, 안정성을 높이기 위해 사용한다c++11이상의 경우 상수표현은 constexpr , 함수 표현은 inline으로 대체 가능#define MAX(a,b)  ( (.. 2024. 6. 21.
조건문과 반복문 조건문, 반복문 조건문에 들어갈 수 있는 형식1. bool2. 비교연산3. 논리연산4. 함수호출5. 문자열 비교6. 포인터 검사7. 컴마(,)연산자8. 삼항연산자조건문조건문에 들어갈 수 있는 형식boolif (true) {} 비교연산if ( a > b ) {}논리연산if ( a ==1 && b ==2 ) {}함수호출if (TEST()) {}  // bool TEST{ return true; } 문자열비교if ("compare" == "fail" ) {} 포인터검사if(ptr) { // ptr이 null이 아닐때 } // if (!ptr) {// ptr이 null 일때} 컴마(,)연산자if ( (a= b+1), a>20 ) {} // b+1이 a에 대입되고, a가 20보다 크면 수행삼항연산자if ( (a .. 2024. 6. 21.