본문 바로가기 메뉴 바로가기

채애가 최애

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

채애가 최애

검색하기 폼
  • 분류 전체보기 (77)
    • Project (9)
      • Game (1)
      • Unity (4)
      • Unreal (0)
      • Server (2)
      • Visual (1)
    • SQL (27)
      • SQLD 1과목 (11)
      • SQLD 2과목 (14)
      • MySQL (0)
    • Python (29)
      • Algorithm (21)
      • Function & Grammer (8)
    • C++ (8)
      • Algorithm (0)
      • Function & Grammer (5)
      • WinAPI (1)
    • C# (2)
      • Algorithm (0)
      • Function & Grammer (2)
    • Diary (1)
    • Storage (1)
  • 방명록

C++/Function & Grammer (5)
C++ : ref (참조)

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..

C++/Function & Grammer 2022. 2. 5. 22:23
C++ : 데이터 타입 변환

당연하지만 사소해서 실수하게 되는 부분을 정리하자면, 데이터 타입 변환이 있다. ▶ 대입 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; // 비트 단위로 보면 똑같지만, 분석하는 방법의 차이 } 프로그래머 계산기로 계산해보면 알겠지만, 데이터 손실이 일어난다. ▶ 곱셈과 나눗셈 곱셈, 나눗셈을 할 때도 다른 데이터 타입의 경우를 조..

C++/Function & Grammer 2022. 2. 5. 20:32
C++ : 메모리 구조 - Data 영역

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++ 표준에서 꼭..

C++/Function & Grammer 2022. 2. 4. 21:39
C++ : Cast (캐스트) 연산자

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++/Function & Grammer 2021. 11. 22. 23:52
C/C++ : #ifdef 와 #endif

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 매크로가 되..

C++/Function & Grammer 2021. 11. 21. 22:51
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • SQLD40회
  • 네이버클라우드플랫폼
  • 파이썬입출력
  • 알고리즘
  • 파이썬 입출력
  • SQLD
  • f-string
  • SQLD 2과목
  • 데이터 모델링
  • SUM함수
  • range함수
  • 백준별찍기
  • 백준
  • Unity GameObject 생성
  • BAEKJOON
  • NaverCloudPlatform
  • 데이터베이스
  • SQLD1과목
  • 백준파이썬
  • Python
  • 파이썬문법
  • 40회 SQLD
  • python문법
  • 파이썬for문
  • 파이썬
  • 파이썬sum
  • 백준 별찍기
  • SQLD 1과목
  • python별찍기
  • 별 찍기
more
«   2025/06   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바