본문 바로가기
GD's IT Lectures : 기초부터 시리즈/C, C++ 기초부터 ~

[C/C++ 프로그래밍] 3. 변수와 상수

by GDNGY 2023. 5. 15.

Chapter 3. 변수와 상수

이번 장에서는 프로그래밍의 핵심 요소인 변수와 상수에 대해 배워볼 것입니다. 변수와 상수의 정의, 선언 및 초기화, 그리고 사용 방법을 알아보며, 두 요소가 어떻게 서로 다른지와 그 차이가 왜 중요한지 알아보겠습니다. 그리고 좋은 프로그래밍 습관에 대해서도 알아봅시다.

 


 

반응형

 


[Chapter 3. 변수와 상수]


3.1. 변수의 이해

3.1.1. 변수란?

3.1.2. 변수의 선언과 초기화

3.1.3. 변수의 이름 짓기

3.1.4. 변수의 사용예

 

3.2. 데이터 타입

3.2.1. 기본 데이터 타입

3.2.2. 데이터 타입의 선택

3.2.3. 데이터 타입의 크기와 범위

 

3.3. 상수의 이해

3.3.1. 상수란?

3.3.2. 상수의 선언과 초기화

3.3.3. 상수의 사용 범위

 

3.4. 변수와 상수의 차이점

3.4.1. 값의 변경 가능성

3.4.2. 사용 상황에 따른 선택

 

3.5. 변수와 상수를 활용한 프로그래밍

3.5.1. 간단한 계산 프로그램 작성

3.5.2. 사용자의 입력을 활용한 프로그램 작성


3.1. 변수의 이해

변수는 프로그래밍에서 가장 기본적인 요소 중 하나로, 데이터를 저장하고 참조하기 위해 사용합니다. 변수는 이름이 주어진 메모리 공간으로, 저장된 데이터는 실행 도중에 변경될 수 있습니다.

3.1.1. 변수란?

변수는 단어 그대로 변할 수 있는 수를 의미합니다. 컴퓨터 프로그래밍에서는 변수를 이용해 데이터를 저장하고 이를 필요에 따라 변경하거나 추출합니다. 간단히 말하면, 변수는 메모리 상의 저장 공간에 이름을 붙인 것이라고 할 수 있습니다.

 

3.1.2. 변수의 선언과 초기화

변수를 사용하기 전에는 반드시 선언해야 합니다. 변수의 선언은 변수의 타입과 이름을 정의하는 것을 말합니다. 이렇게 선언된 변수에 처음으로 값을 넣는 과정을 초기화라고 합니다.

 

C 언어에서의 변수 선언과 초기화는 다음과 같습니다.

 

[예제]

int number; // 변수 선언
number = 10; // 변수 초기화

 

C++에서도 변수의 선언과 초기화 방법은 거의 동일합니다.

 

[예제]

int number; // 변수 선언
number = 10; // 변수 초기화

 

3.1.3. 변수의 이름 짓기

변수의 이름을 짓는 것은 간단하면서도 중요한 작업입니다. 변수 이름은 해당 변수의 용도를 명확하게 알 수 있도록 의미 있는 이름을 사용하는 것이 좋습니다. 또한, 변수 이름에는 규칙이 있으며, 이를 지키지 않으면 에러가 발생합니다.

 

예를 들어, 변수 이름은 숫자로 시작할 수 없으며, 공백이나 특수 문자('_' 제외)는 포함할 수 없습니다. 또한, C++에서는 변수 이름에 대소문자를 구분합니다.

 

[예제]

int age; // 좋은 예
int _age; // 좋은 예
int Age; // C++에서는 가능하지만, C에서는 권장하지 않음
int age_of_person; // 좋은 예

 

3.1.3. 변수의 사용예

변수의 사용 방법에 대한 간단한 예제를 살펴보겠습니다. 아래 예제는 선언된 변수 num1과 num2에 값을 할당하고, 그 값을 출력하는 C/C++ 코드입니다.

 

[예제]

#include<stdio.h>

int main() {
    int num1; // 변수 num1 선언
    int num2; // 변수 num2 선언

    num1 = 10; // 변수 num1 초기화
    num2 = 20; // 변수 num2 초기화

    printf("num1: %d, num2: %d\n", num1, num2); // 변수의 값 출력

    return 0;
}

 

C++ 코드도 거의 동일하나, 출력문만 다릅니다.

 

[예제]

#include<iostream>

int main() {
    int num1; // 변수 num1 선언
    int num2; // 변수 num2 선언

    num1 = 10; // 변수 num1 초기화
    num2 = 20; // 변수 num2 초기화

    std::cout << "num1: " << num1 << ", num2: " << num2 << std::endl; // 변수의 값 출력

    return 0;
}

 

이렇게 변수를 선언하고 초기화하여 사용하는 것은 프로그래밍의 가장 기본적인 부분입니다. 이를 통해 우리는 메모리에 원하는 데이터를 저장하고, 이를 필요한 시점에 사용할 수 있습니다.

 

변수의 선언 위치도 중요합니다. 함수의 시작 부분에서 선언된 변수는 해당 함수 내에서만 사용할 수 있으며, 이를 지역 변수라고 합니다. 반면, 함수 밖에서 선언된 변수는 어디에서나 사용할 수 있으며, 이를 전역 변수라고 합니다. 각각의 사용법과 특징에 대해서는 뒷부분에서 더 자세히 다루도록 하겠습니다.

 

변수의 이해는 프로그래밍의 핵심 중 하나이므로 충분히 연습하고 이해하는 것이 중요합니다.


3.2. 데이터 타입

변수가 데이터를 저장하는 역할을 한다면, 데이터 타입은 그 데이터가 어떤 형태와 크기를 가질지를 결정합니다. C/C++에서는 다양한 데이터 타입을 제공하며, 각 데이터 타입에 따라 저장할 수 있는 데이터의 종류와 크기, 그리고 표현할 수 있는 값의 범위가 달라집니다.

3.2.1. 기본 데이터 타입

기본 데이터 타입에는 크게 네 가지가 있습니다: 정수형(int), 실수형(float/double), 문자형(char), 그리고 논리형(bool). 각각은 다음과 같이 선언합니다.

 

[예제]

int num; // 정수형 변수 선언
float f_num; // 실수형 변수 선언
char c; // 문자형 변수 선언
bool is_true; // 논리형 변수 선언 (C++에서만 사용 가능)

 

3.2.2. 데이터 타입의 선택

변수를 선언할 때는 해당 변수가 어떤 데이터를 저장할 것인지에 따라 적절한 데이터 타입을 선택해야 합니다. 정수를 저장하려면 정수형(int)을, 소수점 아래의 값을 표현하려면 실수형(float, double)을, 문자를 표현하려면 문자형(char)을 선택합니다. 또한 참/거짓을 표현하려면 논리형(bool)을 선택합니다. 

 

3.2.3. 데이터 타입의 크기와 범위

각 데이터 타입은 메모리에 차지하는 크기가 다르며, 이에 따라 표현할 수 있는 값의 범위도 다릅니다. 예를 들어, 정수형 int는 4바이트를 차지하며, -2147483648 ~ 2147483647 범위의 값들을 표현할 수 있습니다. 실수형 float는 4바이트, double은 8바이트를 차지하며, 표현할 수 있는 소수점 아래의 자릿수가 다릅니다. 

 

[예제]

#include <stdio.h>

int main() {
    printf("Size of int: %zu\n", sizeof(int));
    printf("Size of float: %zu\n", sizeof(float));
    printf("Size of double: %zu\n", sizeof(double));
    printf("Size of char: %zu\n", sizeof(char));
    return 0;
}

 

이 코드를 실행하면 각 데이터 타입이 메모리에 차지하는 크기를 바이트 단위로 출력할 수 있습니다. 각 데이터 타입의 크기를 알면 변수가 메모리에 얼마나 많은 공간을 차지하는지, 어떤 값을 저장할 수 있는지 파악하는 데 도움이 됩니다.

 

이처럼 데이터 타입은 프로그래밍에서 매우 중요한 개념입니다. 이를 이해하고 적절히 활용하면, 필요한 데이터를 효율적으로 저장하고 사용할 수 있습니다.


3.3. 상수의 이해

변수와 대비되는 개념으로 상수가 있습니다. 상수는 한 번 값이 주어지면 그 값을 변경할 수 없는 데이터를 의미합니다. 상수는 프로그램이 실행되는 동안 그 값이 변하지 않으므로, 변하지 않는 값을 반복적으로 사용해야 하는 경우에 유용하게 사용됩니다.

3.3.1. 상수란?

상수는 이름 그대로 변하지 않는 값을 의미합니다. 상수는 한번 선언과 동시에 초기화되며, 그 이후로는 그 값을 변경할 수 없습니다. 예를 들어, 원주율 π는 변하지 않는 상수로, 이를 프로그램에서 사용할 때는 상수로 선언하는 것이 바람직합니다.

 

3.3.2. 상수의 선언과 초기화

C/C++에서 상수는 const 키워드를 사용하여 선언하고 초기화합니다. 상수 선언의 형태는 변수 선언과 유사하지만, 선언 앞에 const 키워드가 추가됩니다.

 

[예제]

const int YEAR = 2023; // 정수형 상수 선언과 초기화
const float PI = 3.14; // 실수형 상수 선언과 초기화

 

3.3.3. 상수의 사용 범위

상수는 선언된 위치부터 그 범위가 끝날 때까지 사용할 수 있습니다. 이는 변수의 사용 범위와 동일합니다. 또한, 상수는 선언과 동시에 반드시 초기화해야 합니다. 상수의 값을 나중에 변경하려고 하면 컴파일 에러가 발생합니다.

 

[예제]

const int MAX = 100;
MAX = 200; // 에러 발생

 

상수는 변하지 않는 값을 표현할 때 유용하며, 코드의 가독성과 유지보수성을 높이는 데 도움이 됩니다.

 


3.4. 변수와 상수의 차이점

프로그래밍에서 변수와 상수는 근본적으로 데이터를 저장하는 공간이지만, 그 사용 방법과 규칙에서 차이가 있습니다.

3.4.1. 값의 변경 가능성

가장 먼저 변수와 상수의 가장 큰 차이점은 '값의 변경 가능성'입니다. 변수는 선언된 이후에도 그 값을 변경할 수 있습니다. 반면에 상수는 한 번 초기화하면 그 이후에는 값을 변경할 수 없습니다. 

 

[예제]

// C++
int var = 10; // 변수 선언과 초기화
var = 20; // 변수 값 변경 가능

const int CONST_VAR = 10; // 상수 선언과 초기화
CONST_VAR = 20; // 컴파일 에러, 상수 값 변경 불가능

 

3.4.2. 사용 상황에 따른 선택

변수와 상수 중 어떤 것을 사용할지는 상황에 따라 달라집니다. 일반적으로 값이 변경될 수 있는 데이터는 변수에, 변하지 않는 데이터는 상수에 저장합니다. 예를 들어, 사용자로부터 입력받는 값, 계산 결과 등은 값이 변할 수 있으므로 변수에 저장하는 것이 좋습니다. 반면에 원주율, 한 해의 일수 등 변하지 않는 값은 상수에 저장하는 것이 좋습니다. 

 

[예제]

// C++
int input_data; // 사용자 입력 값, 값이 변할 수 있으므로 변수 선언
cin >> input_data;

const int DAYS_IN_YEAR = 365; // 한 해의 일수, 변하지 않는 값이므로 상수 선언

 

이렇게 변수와 상수를 적절히 사용하면 코드의 가독성을 높이고 오류를 줄일 수 있습니다.

 


3.5. 변수와 상수를 활용한 프로그래밍

변수와 상수는 프로그래밍에서 가장 기본적인 도구로, 어떠한 데이터도 저장하고 사용할 수 있습니다. 이번 섹션에서는 변수와 상수를 활용하여 간단한 프로그램을 작성하는 방법을 알아보겠습니다. 

3.5.1. 간단한 계산 프로그램 작성

변수와 상수를 사용하여 간단한 사칙 연산 계산기 프로그램을 만들어 보겠습니다.

 

[예제]

// C++
#include <iostream>

int main() {
    int num1 = 10;  // 첫 번째 숫자 변수 선언
    int num2 = 20;  // 두 번째 숫자 변수 선언
    int sum;  // 더한 결과를 저장할 변수 선언

    sum = num1 + num2;  // 덧셈 연산

    std::cout << num1 << " + " << num2 << " = " << sum << std::endl;

    return 0;
}

 

이 프로그램은 num1과 num2라는 두 개의 변수를 선언하고 초기화한 후, sum이라는 변수에 두 변수의 합을 저장합니다. 그리고 결과를 출력합니다. 값이 변하지 않는 상수는 이 프로그램에서 사용되지 않았지만, 예를 들어 변하지 않는 계수가 있는 수식을 계산하는 데에는 상수를 사용할 수 있습니다. 

 

3.5.2. 사용자의 입력을 활용한 프로그램 작성

이번에는 사용자의 입력을 받아서 처리하는 프로그램을 작성해보겠습니다. 사용자의 입력을 받는 것은 cin을 사용합니다.

 

[예제]

// C++
#include <iostream>

int main() {
    int input_data;  // 사용자 입력을 받을 변수 선언

    std::cout << "숫자를 입력해주세요: ";
    std::cin >> input_data;

    std::cout << "입력한 숫자는 " << input_data << "입니다." << std::endl;

    return 0;
}

 

이 프로그램은 사용자로부터 숫자를 입력받아, 그 숫자를 출력하는 간단한 프로그램입니다. 변수 input_data는 사용자의 입력을 저장하기 위해 사용되었습니다. 

 

이렇게 변수와 상수를 활용하면 다양한 프로그램을 작성할 수 있습니다. 이제 여러분은 변수와 상수를 자유롭게 활용할 수 있습니다.

 

 

 

2023.05.15 - [GD's IT Lectures : 기초부터 시리즈/C, C++ 기초부터 ~] - [C/C++ 프로그래밍] 2. 출력문과 입력문

 

[C/C++ 프로그래밍] 2. 출력문과 입력문

Chapter 2. 출력문과 입력문 이번 장에서는 C/C++에서 가장 기본적인 작업 중 하나인 출력문과 입력문에 대해 배워볼 것입니다. 출력문과 입력문의 필요성과 사용법, 그리고 printf와 cout, scanf와 cin을

gdngy.tistory.com

 

반응형

댓글