[C언어-막코딩] 4장 상수

in #kr-dev7 years ago (edited)

[C언어-막코딩] 4장 상수



지난 시간에는 변수에 대해서 이야기 했었고 오늘은 상수에 대해 이야기 합니다.

1. 상수


변수는 변하는 수이고 상수는 변하지 않는 수를 말합니다.

int a;

위와 같은 표현은 정수 a라는 변수를 선언하면 a의 값은 0이 될 수도 있고 1이 될수도 있고 다른 임의의 수가 될 수 있습니다.

a=0;
a=1;
a=2; 

이렇게 같은 a라는 변수이지만 a는 고정된 수가 아닌 임의의 수가 될 수 있습니다.

이와 반대의 고정된 수를 갖는 것을 상수라 합니다.

1,2,3,...

위와 같이 1은 1이지 0이 될 수 없고 10이 될 수 없습니다. 1이란 수는 1로 고정된 불변수의 수를 말합니다.

const int a=10;

위의 표현은 a는 10으로 고정된 값을 갖게 되는데 이 a는 상수가 됩니다. a는 10 외에 다른 임의의 수가 저장될 수 없습니다.

2. 상수의 표현


상수는 고정된 불변의 수라고 했는데 방금 전 const 표현도 있지만 다른 표현도 있습니다.

#define A 10

const int B=10;

이렇게 두가지 표현을 할 수 있습니다. define의 경우는 컴파일 전처리과정에서 A라는 표현 위치에 10이라는 값이 저장됩니다. A 자체가 고정된 10으로 보면 됩니다. define or const 표현으로 변수이름을 상수로 사용 할 수 있습니다.

3. 코딩


#include <stdio.h>
#define A 10

int main(int argc, char *argv[]) {
    const int B=20;
    int sum=0;
    
    sum = A + B;
    
    printf("%d + %d = %d \n",A,B,sum);
    
    return 0;
}

컴파일 전 전처리 과정에서 상수는 각 위치에 해당 값을 대입하게 됩니다.

sum = 10 + 20;

printf("%d + %d = %d \n",10,20,sum);

이렇게 컴파일이 된다고 보시면 됩니다.

[결과]
a1.jpg

위와 같은 코딩만으로는 저게 상수로 정확히 처리 되었는지 눈으로 확인 하기 어렵습니다.

직접 상수 위배 코딩을 해서 이게 상수임을 증명해야 겠죠.

잘못 된 상수변수 사용 코딩


a2.jpg

보시는 것처럼 B를 상수변수로 선언하고 B의 값을 갱신을 시도해 보았을 때 위와 같이 에러가 발생합니다.

마무리


오늘은 간단히 상수 표현에 대해 간단히 이야기를 해 보았네요. 위 두가지 상수 표현을 잘 기억했다가 나중에 활용하시기 바랍니다.
사실 상수변수는 해당 값을 특정 고정된 이름으로 알기 쉽게 사용하기 위한 변수 입니다. True or False은 1 or 0의 값의 값을 갖는데 1이라고 그냥 숫자 상수를 쓰면 이 1이 어떤 의미인지 어떤 상황에서 쓰는지 알 수 없습니다. True라는 상수변수로 True 참이다라는 의미로 사용하기 위해서 사용하기 위해서 씁니다. 수학에서 PI는 3.14라고 고정 값을 가질 때 3.14라고 상수 숫자를 사용하면 3.14가 정확히 무슨 의미인지 알 수 없습니다. 그런데 PI라는 상수 변수를 사용하면 아 이 값은 수학에서 PI를 나타낸 값이구나 하고 쉽게 이해 할 수 있습니다.

상수 변수가 어떻게 사용하는지 아시겠지요.


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

행복한 하루보내셔요 천간님!!^^

행복한 하루 되세요.

상세한 설명 감사합니다~

즐거운 불금입니다. 주말 잘 보내세요.