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){ // 함수 바디 ..
1. 함수 형식 2. 함수 오버로딩 3. 함수 호출 스택 함수 형식[반환값] [함수이름] ( [ 인자값 ], ... ) { [ 함수 몸체 ] return [반환값];}반환값 : int, double, string, 클래스 등.. , 함수의 계산 결과에 따른 결과값 반환함수이름 : 함수의 이름 ( 같은 함수를 재정의 하려면, 오버라이딩 혹은 오버로딩을 해야함 )오버로딩 : 서로다른 인자를 가진 같은 이름을 가진 함수오버라이딩 : 상위 클래스 존재하며, 해당 클래스의 함수를 재정의 ( 함수이름, 인자 동일 -> 함수 본체 내용만 다름 )인자값 : int, double, string, 클래스, 포인..
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};/..
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) ( (..
조건문, 반복문 조건문에 들어갈 수 있는 형식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 ..
자동 캐스팅(타입변환), 변수 생존 범위자동 캐스팅int 와 float/double이 계산 될 경우, 더 큰 데이터 자료형으로 자동 캐스팅 된다.하지만, 컴파일에게 자동으로 맡기는 것이아닌, 직접 추가해줄 수 있는 방법이 있다.int main(void){ int a = 1; float b = 2.2f; int result; result = a + b; // a가 1.0 으로 자동 캐스팅됨 result = (float)a + b; // 직접 (float)을 통해 캐스팅해줄 수 있다 }자동 캐스팅의 경우 의도치 않은 결과값이 나올 수 있기에, 캐스팅 해주는 것이 바람직하다 (* 의도치 않은 코드는 버그를 일으킴) 변수 생존 범위중괄호 (for문, 함수(main..
메모리 구조, const 메모리구조메모리구조역할Code 영역실행할 프로그램의 코드 (Text 영역이라고도 불림)Data 영역rodata 영역 : 읽기전용 영역 (ex_ 상수, 상수형 문자열, printf의 중괄호 부분).data 영역 : 초기값이 있는 경우, 정적변수(static), 전역변수.bss 영역 : 초기값 없는 경우, 읽기/쓰기 가능Heap 영역동적할당 공간메모리의 낮은 주소에서 높은 주소로 저장stack 영역지역변수와 매개변수 저장메모리의 높은 주소에서 낮은 주소로 할당Heap 과 Stack은 서로 공간을 공유OverFlow일정한 공간을 공유하기에, 둘다 많이 할당하여 더이상 채울 수 없을경우 overflow 오류를 일으킴먼저 도달한 쪽의 이름을 따서, Heap Overflow, Stack O..
비트연산 비트란?- 0 과 1로서 숫자를 표현 하기 위해 사용되는 것을 비트라고 함.(이진수 체계에서 0 또는 1의 값을 가질 수 있는 최소한의 데이터 단위)ex) 0000 0010 => 256(2^8) 128(2^7) 64(2^6) 32(2^5) 16(2^4) 8(2^3) 4(2^2) 2(2^1) 1(2^0) 숫자 , 문자, 이미지 ,오디오 등 모든 형태의 데이터는 이진수로 변환되어 저장 및 처리됨효울적인 데이터 처리와 저장을 가능하게함 (최소한의 단위로 표현하므로, 사람이 아는 숫자 체계보다 리소스 투입이 적다) 비트 연산AND 연산두개의 비트가 1로 같으면 1,다르면 0 을 출력[예제]1 + 1 -> 11 + 0 -> 00 + 1 -> 00 + 0 -> 0OR 연산두개의 비트 중 한개라도 1이면 ..
- Total
- Today
- Yesterday
- 오블완
- 이진탐색
- HTML5
- 게시판
- SQL
- bean
- 검증
- 티스토리챌린지
- JDBC
- Spring
- 깊이우선탐색
- 타입변환
- 버블정렬
- 백준
- DFS
- 우선순위 큐
- 기술면접
- Thymeleaf
- 포트폴리오
- Java
- 알고리즘
- 게시판 프로젝트
- 코딩테스트
- stack
- 예외처리
- JSON
- 정렬
- db
- BFS
- 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |