leehyeon-dv 님의 블로그

c++ 입문 본문

c++

c++ 입문

leehyeon-dv 2025. 3. 15. 10:17

📌설명 

#include <iostream>
int main(){
    std::cout<<"Hello World"<<std::endl;
    return 0;}

 

#include <iostream>
using namespace std;

int main(){
    cout<<"Hello World!"<<endl;
    return 0;
}

 

 

🔻네임 스페이스 

  이름공간으로 using namespace를 사용하면 std::를 생략한다 

 

🔻cout 

   콘솔은 c++ 프로그램을 동작시키면 뜨는 검정 창을 의미한다 

iostream이란 input/output stream이라는 뜻의 헤더파일로 #include <iostream>을 하면 표준으로 이미 만들어진 iostream이란 파일을 사용할 수 있게 된다 

 

 

📌 변수 

c++은 정적 타입 언어로 변수를 만들기 위해 해당 변수의 타입이 정해져있어야한다 

변수 타입은 해당 변수가 어떤 종류고, 어떤 용도로 사용되는지 의미

 

- 변수선언 = 메모리에 할당 

- 변수 선언과 함께 값을 지정 = 초기화 

 

 

📌 배열 기초

문자열 = 문자와 배열을 함께 사용

문자 -> char name = 'A';

문자열 -> char name[10] = 'Kim";

 

*주의

  • 배열의 크기는 원하는 최대 글자수의 1의 크기로 배열 크기를 정해야한다 (문자열 끝을 알려주는 '\0'이 있기 때문)
  • 한글의 경우 1글자가 2바이트 (영어는 1바이트) 

 

 

📌 분기문

 

🔖숫자가 짝수인지 홀수인지 확인하는 프로그램 

#include <iostream>
using namespace std;

int main() {
  int number;
  cin >> number;  /*숫자를 입력받음*/
  if (number % 2 == 0){
    cout << "짝수입니다!" << endl;
  } 
  else {
    cout << "홀수입니다!" << endl;
  }   
  return 0;
}

 

🔖숫자 조건 비교 프로그램 

#include <iostream>
using namespace std;

int main(){
  int number;
  cout << "숫자를 입력하세요 :";
  cin >> number;
  if (number < 10){
    cout << "10보다 작습니다." << endl;}
  else if (number < 20){
    cout << "20보다 작습니다." << endl;}
  else if (number < 30){
    cout << "30보다 작습니다." << endl;}
  else {
    cout << "30이상입니다." << endl;}
  return 0;
}

 

 

📌 기본문법 - 형변환

 

float y =(int)x;

int x = (int)pi;

 

string의 형변환 

"300"이라는 문자열을 int형 300으로 바꾸고 싶을때 itoa/atoi 

 

 

📌 함수오버로딩 

함수 오버로딩 = 같은 이름을 가지는 다른 동작을 하는 함수 

같은 이름을 가진 함수이지만 매개변수와 리턴값이 다른 함수이다 

이렇게 하면 매개변수 타입에 맞게 알아서 동작하게 된다 

 

 

📌 레퍼런스, 스왑

스왑 = 변수 2개의 내용을 바꾸는것

x = 10; y = 20;일때 두 변수를 x =20, y = 10으로 바꾸는 방법은 ?

 

#include <iostream>
using namespace std;

void swap(int x, int y){
  int teamp = x;
  x = y;
  y = team;
  
  cout << "함수내 x는 " << x << endl;
  cout << "함수내 y는 " << y << endl;
  return;
}

int main(){
  int x = 10;
  int y = 20;
  swap(x,y);
  
  cout << "x는 " << x << endl;
  cout << "y는 " << y << endl;
  return 0;
}

이렇게 하면 main에서는 바뀌지 않고 함수내에서는 바뀐것은 알수 있음

메모리 관점에서 보면

x, y가 만들어지면 해당 변수를 저장하기 위해 메모리에서 x, y가 만들어진다 

그리고 swap 함수를 호출하면 매개변수를 메모리에 새로 할당하고 매개변수로 들어온 값으로 초기화한다

따라서 swap함수의 x, y와 main 의 x, y는 서로 다른 변수이므로 함수내 x, y 값은 변경되나 main의 x, y는 유지된다 

 

그 이후 함수가 끝나면 메모리에 잡힌 내용이 날라가게된다 

이러한 c++함수의 특성을 통해 이 문제해결을 위해 레퍼런스라는 개념을 도입했다 

다른이름으로 같은 메모리공간을 가지게할 수 있다 

 

void swap(int& x, int& y){

  int temp = x;

x = y;

void swap(int& x, int& y){

  int temp = x;
  x = y;
  y = temp;
  return;
}

 

 

📌 재귀함수

재귀함수는 함수내에서 자기 자신을 호출하여 반복되는 함수 

#include <iostream>
using namespace std;

void countNum(int num){
  if (num == 1){
    cout << "Num : " << num << endl;
    return;
  } else {
    cout << "Num : " << num << endl;
    countNum(num - 1);
  }
}

int main(){
  countNum(5);
  return 0;
}