본문 바로가기
c++

C++ 1단원, 2단원 + 입출력 + 연산자

by 몰라몰라개복치 2020. 3. 25.

1. C++이 무엇인가

 

C언어는 절차식으로 작성하기 적합한 프로그래밍 언어고 C++ 언어는 OPP(Object Oriented Programming)객체 지향 프로그래밍)에 적합한 언어 

 

->쉽게 말하자면 C++은 C에 클래스 문법을 추가한 것

 

>>C++언어 특징

c++은 객체 지향 프로그래밍 언어 따라서 객체 지향 프로그래밍 언어의 공통적인 특징 보유

  • 캡슐화
  • 상속 
  • 다형성

>>C++ 프로그래밍 실행 전 준비 단계

visual studio 실행

c언어로 프로젝트 생성할 때랑 똑같은 순서 반복

 

 

>>소스 파일->추가->새항목->**소스명.cpp**으로 소스 생성<<

 

 


2. C++의 입출력 변수

 

- iostream 헤더 파일은 C++ 에서 표준 입출력에 필요한 것들을 포함 (c언어의 <stdio.h>로 생각)

c언어 c++
printf cout
scanf cin
\n endl

 

- cout은 << 연산 뒤에 피 연산자를 표현하면 알아서 출력

- cin은 문자열을 지정할 필요없이 >> 연산 뒤에 변수를 표현하면 알아서 입력

 

 

#include <iostream>

int main() {
  std::cout << "Hello, my name is subin!" << std::endl;
  return 0;
}

 

이때, std:  C++ 표준 라이브러리의 모든 함수, 객체 등이 정의된 이름 공간(namespace)

std::를 붙이는 것이 번거로우면 

using namespace std; 명시 필요

 

 

#include <iostream>
using namespace std;

int main() {
  cout << "Hello, my name is subin!" << endl;
  return 0;
}

 

위 두 예시는 모두 같은 결과 도출

 

3. C++의 연산자

(1) 대입 연산자(=)
같다라는 의미가 아닌 대입한다는 의미 

 

int num1=123 //num1에 123을 대입한다

 

이때 대입 연산은 우측부터 단계적으로 대입된다

 

num0=num1=num2=num3=100

 

num3에 100이 대입되고

num2에 num3(=100)이 대입되고

num1에 num2(=num3=100)이 대입되고

num0에 num1(=num2=num3=100)이 대입됨

 

(2) 사칙 연산자

+ 더하기 

- 빼기

* 곱하기 

/ 나누기

% 나머지값

 

 

int a=100+200; //이때 a의 값은 300
int b=200-100; //이때 b의 값은 100
int c=4*2; //이때 c의 값은 8
int d=6/3; //이때 d의 값은 2
int e=5%2; //이때 e의 값은 1

 

 

사칙 연산자와 대입연산자 결합 가능

 

a+=123; // a=a+123과 동일 즉 기존 a값에 123을 더한 값이 a값이 된다는 뜻

 

 

(3) 증감 연산자 

 

++(변수에 1 더하기)

--(변수에 1 빼기)

 

int a=2;
++a;
a++;
//2번째줄 코드와 3번째줄 코드 모두 기존 a에 +1한 값

 

전위 연산자와 후위 연산자로 나뉜다

>>전위 연산자: 다른 연산들에 앞서 증감 후 다른 연산 처리

>>후위 연산자: 다른 연산들을 미리 처리 후 증감 처리

 

전위 연산자 예시

 

int a=2;
a=++a*200; //a에 1을 더해서 3이 되고 3*200한 결과인 600이 a가 반환

 

 

후위 연산자 예시

 

int a=2;
a=a++*100; //a=2였고 a*100이 되어 200이 된다 후에 후위 연산자로 인해 +1을 해주어 201이 된다

 

 

(4) 관계연산자

 

변수 bool을 이용하여 저장 가능 관계연산자는 두 값을 비교한 후 참이면 1(true) 거짓이면 0(false)를 반환

 

==  같으면 1 다르면 0 반환
!=  다르면 1, 같으면 0 반환
>  좌변이 크면 1, 작으면 0 반환
<  우변이 크면 1, 작으면 0 반환
>=  좌변이 크거나 같으면 1, 작으면 0 반환
<=  우변이 크거나 같으면 1, 작으면 0 반환

 

 

(5) 논리연산자

관계연산자의 결과로 반환된 논리값(참, 거짓)을 처리하는 연산자

 

&& (and 연산자) //조건이 모두 true면 1(=true) 반환, 하나라도 false면 0(=false) 반환

|| ((or 연산자) // 조건 중 하나만 true여도 1(=true) 반환, 둘 다 false면 0(=false) 반환

!(not 연산자) // 참이면 0(=false) 반환, 거짓이면 0(=true) 반환=>논리값을 반전

 

 

(6) 연산자 우선 순위

 

 

 

(7) 비트 연산자