1. 값 전달 방식 2. 주소 전달 방식 3. 참조 전달 방식 주소 전달 방식( ptr ) 와 참조 전달 방식 ( ref ) 은 로우레벨 ( 어셈블리 ) 관점에서 실제 작동 방식은 디버깅을 해보면, 100% 같다 = 성능이 같다. 하이레벨 관점에서는 주소값을 넘겨주는 부분이 숨겨져 있다. // num : 저장 바구니 이름 int num = 1; // ptr : 주소를 담는 바구니 int* ptr = # *ptr = 2; // ref : num 바구니에 또 다른 이름을 부여. // num 이라는 바구니에 ref 라는 다른 이름을 지어줄게! int& ref = num; ref = 3; 그럼 ptr 와 ref 의 차이점은?? 값 전달 처럼 편리하게 사용하고, 주소 전달 처럼 주소값을 이용해 진짜( nu..

당연하지만 사소해서 실수하게 되는 부분을 정리하자면, 데이터 타입 변환이 있다. ▶ 대입 1. int 형 변수들을 short, float 등의 다른 데이터 타입으로 변환하면? 2. -1 인 int 값을 uint 에 대입한다면? int main() { int hp = 33333; short hp2 = hp;// 윗쪽 비트 데이터가 짤린 상태로 저장. 데이터 손실 float hp3 = hp;// 실수(float)로 변환할 때 정밀도 차이로 인해 데이터 손실 hp = -1; unsigned int hp4 = hp; // 비트 단위로 보면 똑같지만, 분석하는 방법의 차이 } 프로그래머 계산기로 계산해보면 알겠지만, 데이터 손실이 일어난다. ▶ 곱셈과 나눗셈 곱셈, 나눗셈을 할 때도 다른 데이터 타입의 경우를 조..

Data 영역 ◈ .data ◈ .bss ◈ .rodata 메모리 구조에서 데이터 영역에 해당하는 부분은 global variable (전역변수) , static variable (static 변수) 이다. 아래 코드를 전역 변수로 선언했다고 했을 때, 데이터 영역은 3가지 영역으로 나뉜다. .bss / .data / .rodata // .bss int a; // .data int b = 0; // .rodata const int c = 0; void main() { // stack 영역 const int d = 0; } 1) .bss 초기값 없는 경우 2) .data 초기값 있는 경우 3) .rodata 읽기 전용 데이터 단, const 의 경우 읽기 전용 데이터라고 볼 수 있지만, C++ 표준에서 꼭..
Cast 4가지 형식 ◈ static_cast ◈ dynamic_cast ◈ const_cast ◈ reinterpret_cast 1. static_cast 논리적으로 변경 가능한 경우에만 허용한다. 논리상 맞지 않는 변환을 막아준다. static_cast (변환 대상) // static_cast (11.5); 실수 → 정수 또는 정수 → 실수 변환은 가능하지만, 포인터 타입 → 정수 타입 변환은 방지한다. (가능) 부모클래스 포인터 → 부모클래스 (가능) 자식클래스 포인터 → 자식클래스 (가능) 부모클래스 포인터 → 자식클래스 (허용) 자식클래스 포인터 → 부모클래스 2. dynamic_cast 실행시간 타입정보 ( Runtime Type Information , RTTI ) 가 필요하다. dynami..
C/C++ 에서의 # 은, '컴파일러 지시자' 이다. 예를 들어 #include , #define, #ifdef, #endif, #if 등이 있다. 그럼 #ifdef 와 #endif 는 ? ifdef ~ endif 영역은 ifdef 바로 뒤에 매크로가 정의되어 있을 때만 컴파일 된다. (1) #ifdef __Study__ #include "study.h" #endif (2) #ifdef __Play__ Play(); #endif 이 코드는, (1) #define __Study__ 가 있으면, #include "study.h" 를 한다는 의미이다. (2) #define __Play__ 가 있으면, Play 함수를 사용한다는 의미이다. 함수 밖에서/안에서 모두 사용 가능하다. 보통은 define 매크로가 되..
- Total
- Today
- Yesterday
- f-string
- 40회 SQLD
- SQLD 2과목
- 백준별찍기
- SQLD40회
- 백준파이썬
- python별찍기
- 파이썬
- 백준 별찍기
- SQLD
- 네이버클라우드플랫폼
- SQLD 1과목
- 파이썬sum
- 데이터베이스
- SQLD1과목
- 백준
- NaverCloudPlatform
- python문법
- BAEKJOON
- 별 찍기
- 파이썬for문
- 파이썬입출력
- 파이썬문법
- 데이터 모델링
- 알고리즘
- SUM함수
- Python
- range함수
- Unity GameObject 생성
- 파이썬 입출력
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |