본문 바로가기
C++/[AssortRock] C++ 기초 다지기

CPP_1. AssortRock 1일차 오프라인 수업_220905

by 헛둘이 2022. 9. 6.
컴퓨터를 사용하는 이유
  • 인간이 다 기억할 수 없기 때문에 메모리라는 곳에 저장하기 위해서 컴퓨터를 사용한다.

 

컴퓨터의 구성요소 3가지
  • 파워
  • CPU (연산 장치)
  • 메모리 (휘발성/비휘발성) - RAM/SSD/HD 등
이것들을 전부 연결시켜 주는 것이 메인보드

 

if-else문에 대한 이야기
  • 어떤 조건에 의해 실행되어야 하는 코드의 경우 if-else를 사용하면 된다.

 

int형에 대한 이야기
  • int형은 32bit를 차지하는데, 이는 4바이트이다.
  • 32bit는 2의 32승으로 42억 근사치의 데이터를 저장할 수 있다.
  • unsigned와 signed가 나뉘는데 signed는 최상위 비트를 부호 비트로 사용하므로,
  • 부호 비트를 빼면 음수 / 양수 21억 근사치로 나뉜다.

 

등호에 대해 주의할 점
  • 수학에서 '='는 같다 라는 의미이지만 프로그래밍에서 '=' 대입연산자이므로 유의하여야 한다. 

 

변수를 만들 때 이미 예약된 키워드는 식별자(이름)이 될 수 없다.
  • 변수명에 사용 가능한 특수 문자는 1개 있고, 나머지는 사용이 불가하다.
  • 이름은 대소문자, 숫자 및 문자로만 구성될 수 있다.
  • 대문자와 소문자는 서로 구별이 된다.

 

float형에 대한 이야기
  • float는 실수(소수)를 나타내는 자료형이다.
  • 소수의 마지막 자리에 f를 붙이면 float형으로 저장하겠다는 의미이다.
  • f를 붙이지 않으면 double형이나 다른 자료형이 들어간다.

 

char형에 대한 이야기
  • 컴퓨터는 문자랑 코드를 구분할 수 없으므로 char형을 사용할 떄는 작은 따옴표로 구분해서 사용해야 한다.
  • 문자 한 개를 나타내는 자료형

 

주석에 대한 이야기 (시진핑 주석할때 그 주석 아님)
  • 과도한 주석은 가독성을 해치기도 한다.
  • 주석이 필요 없도록 코드를 깔끔하게 작성하는 것이 좋은 코드다.

 

bool 자료형에 대한 이야기
  • true, false를 나타내는 자료형을 뜻하며, 각각 1, 0을 나타낸다.
  • true의 경우는 0이 아닌 모든 수에 대하여 true로 나타낸다.

 

signed와 unsigned에 대한 이야기
  • 자료형의 앞은 signed가 default이며, unsigned의 경우 부호비트를 값을 저장하는 용도로 사용하도록 지시하는 것.
  • 그래서 unsigned의 경우 음수가 되면 underflow가 발생하므로 음수로 내려가지 않도록 예외처리를 해주어야 한다.

출처: 위키백과

 

프로그래밍을 잘한다는 것
  1. 디버깅 ( + 자료구조 & 알고리즘 )
  2. 문자열
  3. 파일 입출력
  4. 그 외 수학, 3D 이론, 네트워크 등등.. (4번의 경우 라이브러리, API로 되어 있음)

 

변수를 선언하면 운영체제가 메모리의 임의의 위치에 적절하게 할당한다

 

 

auto에 대한 이야기
  • 자료형이 긴 경우 작업속도를 위해 auto 문법을 사용한다.
  • 성능상의 약간의 오버헤드가 있고, 가독성이 떨어지므로 남발하지 말자

 

쓰레기 값에 대한 이야기
  • 프로그램이 종료된 후 메모리에 남아 있는 값은 지우지 않는다.
  • 그래서 변수를 선언할 때 초기화하지 않으면 쓰레기값에 연산을 하므로 문제가 발생할 수 있다.

 

decltype에 대한 이야기
  • 어떤 변수의 자료형을 모를 때 그 변수를 decltype(변수명)을 넣어주면 자료형을 추론해준다.
  • 때로는 unsigned long long 이렇게 긴 타입의 경우 사용하기도 한다.

 

프로그램의 메모리 영역
  • 프로그램의 메모리 영역은 아래와 같은 순서로 나뉘게 된다.
  • 코드 영역 : 우리가 작성한 코드가 들어가는 곳
  • 데이터 영역 : 전역변수가 들어가는 곳
  • 힙 영역 : 동적할당 (나중에 배움)
  • 스택 영역 : 지역변수가 들어가는 곳

 

lvalue 와 rvalue에 대한 이야기
  • 등호 기준으로 좌측 / 우측을 각각 lvalue = rvalue라고 부른다. (ex. int a = 10;)

 

각종 등호 연산자 (+= 등..) 에 대한 이야기
  • 등호 연산의 경우 자기 자신에 어떤 연산을 실행하고 그걸 다시 자신에게 저장할 때 사용한다.
  • ex) int a = 5; 
  • ex) a += 5; // a = 10;

 

전위 증감 연산자, 후위 증감 연산자에 대한 이야기
  • a++의 경우 a라는 값을 1 증가시키는 연산이다.
  • ++의 위치에 따라 연산이 일어나는 시점에 차이가 있는데,
  • a++의 경우 그 한 줄이 끝나고 나서 ++연산이 실행이 되고,
  • ++a의 경우 그 한 줄이 시작하고 a가 연산되는 시점에 ++연산이 실행이 된다.

 

비트 연산자에 대한 이야기
  • 두 피연산자의 값을 비트 대 비트로 연산을 진행한다.
  • and 연산(&)은 같은 자리의 비트를 비교하여 둘 다 1인 경우 해당 위치의 비트를 1로 세팅한다.
  • or 연산(|)은 같은 자리의 비트를 비교하여 둘 중 하나가 1이라면 해당 위치의 비트를 1로 세팅한다.
  • xor 연산(^)은 같은 자리의 비트를 비교하여 1이 홀수개일 때만 해당 위치의 비트를 1로 세팅한다.
  • not 연산(~)은 단항연산이며, 해당 피연산자의 비트를 반전시킨다.
  • shift 연산(<<, >>)은 피연산자의 비트를 지정한 방향으로 n비트만큼 밀어낸다.

 

비트 연산이 필요한 이유
  • 클라이언트 개발자보단 서버 개발자가 더 요긴하게 쓴다.
  • 서버와 클라이언트 간 통신의 경우 움직이는 데이터의 양이 적으면 적을 수록 빠르기 때문

댓글