취미 - 전자공학/C언어

C언어 - 변수

2025. 1. 16. 15:01

컴퓨터에는 CPU, 메모리(주기억장치), HDD/SDD등(보조기억장치)이 필수적으로 들어간다.

이 부품들의 속도를 순서대로 나열하면 CPU > 메모리 > 보조기억장치의 순이다.

보조기억장치는 저장을 할 수 있는 공간이 크고, 컴퓨터의 전원을 껏다 켜더라도 데이터가 사라지지 않고

그대로 보존한다.

그러나 주기억장치의 경우 필요할 때만 보조기억장치에서 데이터를 끌어와 사용하며 전원이 차단되면

보관하고 있던 데이터가 사라진다.

그렇다면 주기억장치를 사용하지 않고 보조기억 장치만 사용하면 되는 것 아닌가 하고 생각할 수 있다.

하지만 CPU의 속도에 비하여 보조기억장치의 속도가 너무 느리기 때문에 비효율 적이다.

반대로 주기억장치를 데이터가 사라지지 않게 하고 저장용량을 늘려면 되는 것 아닌가 하고 생각할 수도 있다.

하지만 세상은 자본주의 원리에 의해 돌아간다는 것을 잊어서는 안된다.

CPU > 메모리 > 보조기억장치의 순으로 속도가 빠른만큼 가격도 비싸진다.

사실 CPU에도 캐시메모리라는 메모리가 있어 이는 주기억장치보다도 더 빠른 속도를 보여주지만 용량이 작고

비싸다.

우리가 컴퓨터를 구매할 때 견적을 내보면 용량대비 가격을 따졌을때 보조기억장치가 가장 저렴한 것을 알 수 있다.

주기억장치인 메모리를 1TB씩 구성하려고한다면 4GB 메모리 한 장당 3만원이라고 했을때 메모리 값만 750만원이라는 계산이 나온다. 이 금액으로 컴퓨터를 구매할 수 있는 사람이 몇이나 될까?

 

그래서 중간에 주기억장치를 두어 필요한 보조기억장치로부터 데이터를 가져와 주기억장치가 CPU와 데이터를 주고 받는다.

이러한 이유로 CPU는 주기억장치와만 소통을하며 연산을 한다.

 

이때, CPU가 메모리와 데이터를 주고 받기 위해서는 메모리의 주소를 알아야 하는데, 메모리의 공간을 컴퓨터가 사용하는 숫자로 표현하여 인간이 프로그래밍 하기에는 상당히 비효율적이다.

그래서 변수라는 개념을 도입하여 메모리 주소에 프로그래머가 직접 임의의 변수를 할당할 수 있게 한다.

 

아파트를 예로들면 각 세대마다 101동 1001호, 102동 1301호와 같이 동.호수가 붙어있다.

각각의 세대가 메모리 공간이고, 몇 동 몇 호가 메모리 공간의 주소인 것이다.

그런데 이 조차도 프로그래머 입장에서는 사용하기에 불편하므로 임의로 이름을 붙일 수 있게 한 것이 변수이다.

101동 1001호라고 메모리의 주소를 사용해도 되지만, 프로그래머가 101동 1001호에 'a'라고 변수명을 정해주면

프로그래밍 하면서 'a'라고만 입력해주어도 101동 1001호라는 메모리 공간에 접근이 가능해지는 것이다.

 

실제 프로그래밍 코드로 예를 들어보자

 

int main()

{

int a; // 어떤 메모리 공간에 a라는 이름(변수명)을 부여함

int b;  // 어떤 메모리 공간에 b라는 이름(변수명)을 부여함

 

return 0; // return 0; 운영체제에 0을 반환함

// return이 선언됨으로 인하여 함수가 끝난 것으로 판단하므로 return 이후에 작성되는 프로그램은 아무 의미가 없다.

}

 

 

 

 

 

'취미 - 전자공학 > C언어' 카테고리의 다른 글

2022 비쥬얼스튜디오 줄번호 표시 방법  (0) 2025.01.16