Hello, World!

1. 가장 간단한 C++ 프로그램

int main()  // 가장 간단한 C++ 프로그램
{

} Code language: JavaScript (javascript)
  1. 이 코드는 매개변수가 없고 내부 동작도 수행하지 않는 main 함수를 정의합니다.
  2. 왼쪽 중괄호 {는 main 함수 본문의 시작, 오른쪽 중괄호 }는 함수 본문의 끝을 나타내며 실행할 코드는 {} 안에 작성합니다.
  3. 이중 슬래시 //는 한 줄 주석으로, //부터 줄 끝까지의 내용은 사람이 읽는 정보일 뿐 컴파일러가 무시합니다.
  4. 완전한 C++ 프로그램에는 전역 main() 함수가 단 하나 반드시 존재해야 하며 프로그램 실행은 main부터 시작됩니다.
  5. int는 함수가 정수 값을 반환함을 의미합니다. 함수 내부에서 0을 반환하면 정상 종료, 0이 아닌 값을 반환하면 오류가 발생한 것입니다.
  6. 5번 항목의 반환 값은 Unix/Linux 시스템이 읽지만 대부분의 Windows 프로그램에서는 사용하지 않습니다.

2. 표준 출력 Hello World 전체 예제

#include <iostream>

int main()
{
    std::cout << "Hello, World!\n";
}Code language: C++ (cpp)
  • #include <iostream>:컴파일러에 표준 입출력 스트림 라이브러리 선언을 불러오라고 지시합니다. 이 줄이 없으면 std::cout 출력 구문을 인식할 수 없습니다.

iostream은 앞서 설명한 표준 라이브러리 중 하나로, 컴파일러에 기본 탑재된 C++ 코드입니다. 콘솔에 텍스트를 출력하는 등 입출력 관련 작업에 사용합니다.

  • << 출력 연산자: 오른쪽 내용을 왼쪽 출력 객체 std::cout에 기록합니다. 이 예제에서는 문자열 "Hello, World!\n"를 표준 콘솔(CMD 터미널)에 출력합니다.
  • “Hello, World!\n”은 문자열 리터럴로 큰따옴표로 감싼 텍스트입니다. 이스케이프 문자 \n는 개행 문자로 출력 후 커서가 다음 줄로 이동합니다.
  • std:::네임스페이스 한정자로 cout가 표준 라이브러리 std 하위 구성 요소임을 나타냅니다. 뒤에서 using namespace std;를 소개해 std:: 접두사를 생략하고 cout만 사용하는 방법을 설명합니다.

네임스페이스 한정자의 목적은 동일한 이름 충돌을 방지하기 위해 라이브러리에 접두사를 붙이는 것입니다. 예를 들어 반에 동명이인 학생이 두 명 있으면 선생님께서 Jason 1, Jason 2처럼 구분하는 라벨을 붙이는데, std의 역할도 이와 같습니다.

전체 예제

아래 예제에는 별도 함수 두 개를 정의했으며 main 함수에서 한 함수를 호출하고 해당 함수가 다시 다른 함수를 호출하는 구조입니다. 원의 넓이를 계산하는 프로그램으로 반지름을 입력하면 원의 넓이를 출력합니다.

#include <iostream>
using namespace std; // std 네임스페이스를 선언하면 이후 std::를 생략 가능

// 원 넓이 계산
double circle_area(double x)
{
    return 3.14 * x * x;
}

// 원 넓이 출력
void print_circle_area(double r)
{
    cout << "The area of circle with radius " << r << " is " << circle_area(r) << "\n";
}

int main()
{
    print_circle_area(2.0); // 반지름 2, 원 넓이 출력
    return 0;
}Code language: C++ (cpp)

실행 결과

The area of circle with radius 2 is 12.56Code language: JavaScript (javascript)

cout에 여러 개의 <<를 연결해 여러 내용을 연속 출력할 수 있으며 \n을 사용하지 않으면 모든 내용이 한 줄에 표시됩니다. 문자열 리터럴 외에도 double 타입 변수 r과 같은 변수도 출력 가능합니다.

void print_circle_area(double r)의 괄호 안 (double r)은 매개변수입니다. 매개변수란 외부 호출 시 값을 전달받는 변수를 의미합니다. main에서 print_circle_area(2.0);를 호출하면 2.0이 전달되어 함수 내 r=2.0이 됩니다. 이어 cout은 텍스트, 변수 r, circle_area(r)의 결과를 순서대로 출력합니다. 이때 r의 값 2.0이 double circle_area(double x)의 x에 전달되어 x=2.0이 되고 3.14*2*2=12.56이 계산된 뒤 return으로 호출자에게 반환됩니다. 실행 로직은 아래 코드와 동일합니다.

cout << "The area of circle with radius " << r << " is " <<  12.56 << "\n";Code language: C++ (cpp)

출력이 완료되면 }로 print_circle_area 함수가 종료되고 처리 흐름이 main 함수로 돌아갑니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다