본문 바로가기

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

자동 캐스팅, 변수 유효범위, 타입 변환 자동 캐스팅(타입변환), 변수 생존 범위자동 캐스팅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.. 2024. 6. 21.
메모리 구조 및 const 메모리 구조, const 메모리구조메모리구조역할Code 영역실행할 프로그램의 코드 (Text 영역이라고도 불림)Data 영역rodata 영역 : 읽기전용 영역 (ex_ 상수, 상수형 문자열, printf의 중괄호 부분).data 영역 : 초기값이 있는 경우, 정적변수(static), 전역변수.bss 영역 : 초기값 없는 경우, 읽기/쓰기 가능Heap 영역동적할당 공간메모리의 낮은 주소에서 높은 주소로 저장stack 영역지역변수와 매개변수 저장메모리의 높은 주소에서 낮은 주소로 할당Heap 과 Stack은 서로 공간을 공유OverFlow일정한 공간을 공유하기에, 둘다 많이 할당하여 더이상 채울 수 없을경우 overflow 오류를 일으킴먼저 도달한 쪽의 이름을 따서, Heap Overflow, Stack O.. 2024. 6. 21.
비트연산 비트연산  비트란?- 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이면 .. 2024. 6. 21.
연산 (산술, 사칙, 증감, 비교, 논리) 대입연산, 사칙연산, 증감연산, 비교연산, 논리연산 대입연산오른값을 왼값으로 넣어주는 과정int main(void){ int a = 2; // 왼값 : a , 오른값 : b}  사칙연산덧셈 , 뺄셈, 곱셈, 나눗셈 (몫), 나머지int main(void){ int a = 1; int b= 2; a = b + 3; // result : 5 a = b - 3; // result : -1 a = b * 3; // result : 6 a = b / 3; // result : 0 (* a가 int 값이므로 소수점이 나오지 않는다.) a = b % 3 // result : 2 (* a가 나누는값보다 작으므로 2가 나온다 (3보다 크지 않는 수는 그대로 출력) )}  증감연산.. 2024. 6. 21.
문자와 문자열 문자 자료형 문자 자료형 1 BYTE = 8 bit (256개 표현 가능)자료형크기범위charsigned char,  __int81 BYTE-128 ~ 127unsigned char-1 BYTE0 ~ 255wchar_t__wchar_t2 BYTE0 ~ 65,535char8_t (C++20)-1 BYTEUTF-8 유니코드 저장 가능char16_t-2 BYTEUTF-16 유니코드 저장 가능char32_t-4 BYTEUTF-32 유니코드 저장 가능char : 알파벳 / 숫자 문자를 나타냄wchar_t : 와이드 문자 형식 또는 멀티바이트 문자를 지원함 (유니코드 지원)wchar_t인 경우 문자형식이 다르기 때문에, std:: cout 이 아닌 std::wcout을 사용해야한다.#include -> wcsle.. 2024. 6. 21.
자료형 자료형 (정수형, 소수형)자료형1 BYTE = 8bit (256개를 표현 가능)1bit => 0 또는 1로 이루어짐구분자료형크기범위기본형void-- (빈값)- (빈값)정수형bool-1 Bytefalse(=0) / true(=1)short__int162 Byte(약) -32000 ~ +32000unsigned short unsigned __int162 Byte(약) 0 ~ +64000int__int32, long4 Byte(약) -21억 ~ +21억unsigned intunsigned __int324 Byte(약) 0 ~ +42억long long__int648 Byte( 약) -922경 ~ +922경실수형float-4 Byte(약) 3.4E +/- 38 (7자리 숫자)double-8 Byte(약) 1.7E.. 2024. 6. 21.