C++ 3

[C++]포인터 기본 개념

포인터란? 포인터도 그냥 변수이다. 주소값을 저장하는 변수이다. 포인터의 형태 자료형* 변수명 = 값; 여기서 * 은 에스크리터 연산자라고 부른다. 에스크리터 연산자는 포인터 변수를 선언하는 용도로 사용된다. int* ptr; int * ptr; int *ptr; 에스크리터 연산자를 어디에 붙이나 상관은 없으나 통일성이 있어야 한다. nillptr int* ptr = 0; int* ptr1 = NULL; int* ptr2 = nullptr; 0은 정수이므로 잘 쓰지 않고, 요즘은 nullptr을 많이 사용한다. float f = 0.f; int* ptr = &f; 이렇게 쓰면 안된다. 포인터 변수에 주소값을 담으려면 포인터 변수를 선언할 때 명시한 자료형과 일치하여야 한다. 즉, int* ptr = &f..

프로그래밍/C++ 2021.09.24

자료형

자료형의 종류 : 정수 자료형, 실수 사료형, 문자 자료형, 논리 자료형 (참과 거짓을 따짐) 1 Byte char (문자 자료형), bool (논리자료형) 2 Byte short (정수 자료형) 4 Byte int, long (정수 자료형), float (실수 자료형) 8 Byte long long (정수 자료형), double, long double (실수 자료형) unsigned 음수를 사용하지 않는다. (이진법에서 맨 앞쪽 비트 까지 숫자를 표현하는데 사용한다.) signed defalt 값이다. 캐릭터 형이라고 부른다. 문자 자료형이지만 기본적으로 정수값을 저장한다. (ASCII 코드표 에서 알아서 변환하여 저장) char ch1 = 97; cout

프로그래밍/C++ 2021.09.07

부동소수점 이해하기

부동 소수점의 오차 1/3을 소숫점으로 표현하면 0.333333...처럼 끝이 없는 수인 것을 알고 있다. 이것을 십진 무한 소숫점 수 라고 한다. 마찬가지로 이진법에서도 이진 무한 소숫점 수가 있다. 대표적으로 0.1이다. 0.1을 이진법으로 표현하면 0.10000000149011611938..로 끝이 없는 수가 나타난다. 컴퓨터는 유한한 저장공간을 가지고 있고, 그 중 실수는 32비트(float) 또는 64비트(double)에 저장 된다. 따라서 컴퓨터(2진법을 사용)는 십진법의 0.1을 정확하게 이진법으로 같은 값을 나타낼 수 없다. 0.1 * 0.1 조차도 이진법의 0.01 근사값이 아니다. 따라서 연산이 많아질 수록 오차는 더 커질 것이다. 0.1 * 0.1 (0.1 의 이진법의 제곱) = 0...

컴퓨터구조 2021.09.07