코린이의 개발 일지

[c++ 문법] c++ 기초, Hello world 출력하기 본문

프로그래밍 언어 문법/c++ 문법 정리

[c++ 문법] c++ 기초, Hello world 출력하기

폴라민 2021. 9. 19. 12:03
반응형

교수님께서.. c++기초 문법은 따로 공부해 오라고 하셨기 때문에.. 시작하는

 

c++ 기초 문법 정리

 

1. 기본 코드

 

우선 언어의 시작 "Hello world" 부터 찍어 봅시다.

 

#include <iostream> //C++ 표준 라이브러리

int main()

{
    std::cout << "Hello world"; // c++에는 네임 스페이스라는 것이 있다. 
    // std라는 네임 스페이스에 있는 명령어를 쓰겠다는 의미에서 std::를 붙여 주어야 함.
    // cout은 파이썬에서 print, c언어에서 printf와 마찬가지로 출력하는 명령어이다.

    return 0;
}

우선 c언어에서 표준 라이브러리인 stdio.h를 참조한 것처럼 마찬가지로 c++도 iostream이라는 표준 라이브러리가 있습니다. 먼저 include 해주도록 합시다.

 

다행히 c언어를 배웠어서 기본적인 형태를 보는데에는 큰 무리가 없지만 그래도 기본적인 설명은 적어 보겠습니다.

c언어와 마찬가지로 main함수가 있습니다.

 

main함수 안에 보면 이제 낯선 std::cout 이라는 굉장히 암호스러운 명령어가 등장합니다. 

사실 별건 아니고 cout은 출력할 때 쓰는 명령어 입니다.

그와 반대로 cin은 입력 받을 때 쓰는 명령어. 입출력 명령어는 후에 따로 다루도록 하겠습니다.

 

그럼 이제 std::는 무엇이냐?

위에 적어놓기는 하였지만 c++에는 '네임스페이스'라는 것이 존재 합니다.

 

  • 네임 스페이스란?

네임스페이스란 이름이 기억되는 영역을 뜻하며, 이름이 소속된 공간을 의미합니다.

네임스페이스는 C++ 프로그램을 작성할 때 발생하는 이름에 대한 충돌을 방지해 주는 방법을 제공합니다.

이러한 네임스페이스는 C언어에는 없는 C++ 만의 새로운 기능입니다.

C++ 프로그램의 표준 구성 요소인 클래스, 함수, 변수 등은 std라는 이름 공간에 저장되어 있습니다.

출처: http://tcpschool.com/cpp/cpp_scope_namespace

 

 

따라서 C++ 프로그램에서 표준 헤더 파일인 iostream 내의 정의를 사용하려면 위와 같이 사용해야 합니다.

위의 예제처럼 std라는 네임스페이스에 있는 정의를 사용하려면, std:: 접두어를 붙여 해당 정의가 std라는 네임스페이스에 있다는 것을 컴파일러에 알려줘야 합니다.

 

자 그렇다면 매번 명령어를 쓸 때마다 std::를 붙여야하다니, 너무 귀찮죠? 한방에 해결 가능한 방법이 있습니다.

 

#include <iostream>

using namespace std; 
// std라는 네임스페이스에 속한 정의들은 네임스페이스 이름을 붙이지 않아도 사용할 수 있음.

int main()

{

    cout << "Hello world";

    return 0;

}

 

벌써부터 어려워지는 것 같죠? 아닙니다. 그냥 저거 적으면 되는구나! 하고 일단 받아 들입시다.

이제 막 c++시작 했으니까요. 네임스페이스에 더 자세히 알고 싶으신 분들은 

http://tcpschool.com/cpp/cpp_scope_namespace

이 곳에 가시면 설명이 자세히 나와 있습니다.

 

main 함수에서의 return 0는 사실상 이제 프로그래밍 배우고 있는 입장에서 저도 자세히는 알지 못합니다. 

알고 있는 부분은 c와 c++ main함수가 정상적으로 작동이 되는 경우에는 0값을 return하고 오류가 발생하는 상황에는 0이 아닌 값을 return하도록 하는 것? 정도로 알고 있습니다. 

 

그러니 지금은 그냥 return 0를 적어 주시면 됩니다. 이 main함수에서는요. 다른 함수에서 return 값은 필요한 data를 return하면 되겠죠?

 

자 여기까지 기초였습니다. 기초인데 이것저것 설명을 꽤 했네요..

다음 포스팅에서는 입출력과 문자열 입출력에 대해 다뤄보도록 하겠습니다.

 

 

반응형
Comments