Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 변수의 개념부터 선언 규칙까지 한눈에 정리


C 언어를 배우는 데 있어 변수(variable)는 가장 기본이 되면서도 가장 중요한 개념입니다. 이 글에서는 변수가 무엇인지, 변수 이름을 정할 때 지켜야 할 규칙은 무엇인지, 그리고 실제로 변수를 어떻게 선언하고 활용하는지 예제와 함께 자세히 알아보겠습니다.

변수(Variable)란?

변수는 프로그램이 실행되는 동안 데이터 값을 저장하기 위해 사용하는 메모리 공간에 붙인 이름입니다. 변수의 주요 특징을 정리하면 다음과 같습니다.

  • 데이터 값을 저장할 수 있는 메모리 위치를 가리키는 이름입니다.

  • 프로그램 실행 중 언제든지 다른 값으로 바뀔 수 있습니다.

  • 프로그래머가 프로그램 내에서의 역할이나 성격을 드러내도록 의미 있는 이름을 직접 정할 수 있습니다.

예를 들어 sum(합계), avg(평균), total(총합)처럼 용도를 쉽게 파악할 수 있는 이름을 붙이는 것이 좋습니다.

변수 이름 작성 규칙

변수 이름을 정할 때는 반드시 아래 규칙을 지켜야 합니다.

  • 반드시 영문자(알파벳)로 시작해야 합니다.

  • ANSI 표준 기준 변수 이름의 최대 길이는 31자입니다. 다만 많은 컴파일러에서는 앞 8글자만 유효하게 인식합니다.

  • 대문자와 소문자는 서로 다른 문자로 구분됩니다. 예를 들어 total, TOTAL, Total은 모두 서로 다른 세 개의 변수입니다.

  • 변수 이름으로 예약어(keyword)는 사용할 수 없습니다. (예: int, float, if 등)

  • 이름 안에 공백(white space)은 허용되지 않습니다.

변수 선언 방법

변수를 사용하기 전에는 반드시 선언을 통해 컴파일러에게 변수의 자료형과 이름을 알려주어야 합니다.

선언 문법(Syntax)

Datatype v1, v2, ... vn;

여기서 v1, v2, ..., vn은 각각 변수의 이름을 의미합니다.

예를 들면 다음과 같습니다.

int sum;
float a, b;

위 코드에서 sum은 정수형(int) 변수로, ab는 실수형(float) 변수로 선언되었습니다.

지역 선언과 전역 선언

변수는 선언되는 위치에 따라 두 가지 방식으로 나눌 수 있습니다.

  • 지역 선언(Local declaration) — 함수나 블록 내부에서 변수를 선언하는 것으로, 해당 변수는 그 블록 안에서만 접근하고 사용할 수 있습니다.

  • 전역 선언(Global declaration) — 함수 외부(블록 바깥)에서 변수를 선언하는 것으로, 프로그램 전체 어디에서든 접근하여 사용할 수 있습니다.

지역·전역 변수 선언 예제

다음은 C 언어에서 지역 변수와 전역 변수를 선언하는 기본적인 형태를 보여주는 코드입니다.

int a, b; /* 전역 선언 */
main() {
    int c; /* 지역 선언 */
    ...
}

ab는 함수 밖에서 선언된 전역 변수이므로 프로그램 전체에서 사용할 수 있으며, cmain() 함수 안에서 선언된 지역 변수이므로 이 함수 내부에서만 유효합니다.

실전 예제: 매입가와 판매가로 이익·손실 계산하기

아래는 상품의 매입가(Cost Price)와 판매가(Selling Price)를 입력받아 이익 또는 손실 금액을 계산하는 C 프로그램입니다.

#include <stdio.h>
int main(){
    float CostPrice, SellingPrice, Amount; // 변수 선언
    // CostPrice, SellingPrice는 변수이고,
    // float은 실수형 자료형이다.
    printf("\n product cost price: ");
    scanf("%f", &CostPrice);
    printf("\n product selling price : ");
    scanf("%f", &SellingPrice);
    if (SellingPrice > CostPrice){
        Amount = SellingPrice - CostPrice;
        printf("\n Profit Amount = %.4f", Amount);
    }
    else if(CostPrice > SellingPrice){
        Amount = CostPrice - SellingPrice;
        printf("\n Loss Amount = %.4f", Amount);
    }
    else
        printf("\n No Profit No Loss!");
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과를 확인할 수 있습니다.

product cost price : 240
product selling price : 280
Profit Amount = 40.0000

매입가 240, 판매가 280을 입력하면 판매가가 더 크므로 이익 금액 40.0000이 출력됩니다. 반대로 매입가가 판매가보다 크면 손실 금액이 출력되고, 두 값이 같으면 "No Profit No Loss!"(이익도 손실도 없음)라는 메시지가 표시됩니다.

마무리

변수는 데이터를 담는 그릇이자 프로그램의 기초입니다. 의미 있는 이름을 붙이고 네이밍 규칙을 준수하며, 지역 변수와 전역 변수의 범위(scope) 차이를 정확히 이해하는 것이 깔끔하고 오류 없는 C 코드를 작성하는 첫걸음입니다.