RAM
ram이란?
변수에 대해 알아보기 전, 우선 ram에 대해 알아보자!
ram은 '메모리'라고 불리는 컴퓨터의 부품으로, 하드디스크와 같은 저정장치로써 데이터를 보관한다
ram은 휘발성 메모리로 전원을 껐다가 키면 저장된 데이터가 사라지고, 하드디스크는 전원을 껐다가 켜도 데이터가 그래도 남아있어 보통 파일을 저장한다
왜 우리는 ram에 데이터를 저장해야 할까?
간단히 설명하자면 우리가 컴퓨터를 사용할 때, 프로그램을 동작시키기 위해서는 데이터를 활용해야 하고, 데이터를 활용하려면 저장을 해야 한다. 즉, ram이 없으면 프로그램이 동작하지 않기 때문에 필요하다고 할 수 있다!
조금 더 자세한 설명을 보고싶다면 해당 글을 참고하자
ram 판매 사이트인데 설명을 아주 잘해두었다!
ram의 구성
ram은 주소와 값의 한 쌍으로 이루어져 있는데, 이를 변수라고도 한다
ram | |
주소 | 값 |
0x로 시작하는 8자리 또는 16자리 16진수 | 데이터 1 |
0x로 시작하는 8자리 또는 16자리 16진수 | 데이터 2 |
변수
변수
변수
프로그래밍에서 정수, 실수, 문자 등 자료 값을 저장하는 공간을 변수라고 한다
변수에는 고유한 이름이 붙여지고, 물리적으로는 기억장치인 메모리(ram)에 위치하게 된다
즉, 메모리 주소를 사용해서 변수에 데이터를 저장하고, 접근하여 저장된 데이터를 사용할 수 있다
변수의 3요소
변수(variables)에서 주요 정보인 변수이름, 변수의 자료형, 변수 저장 값을 변수의 3요소라고 한다
int num1 = 30;
//변수 이름: num1
//변수 자료형: int
//변수 저장 값: 30
변수를 선언한 이후 변수의 3요소 중 변수이름과 변수의 자료형은 바뀌지 않지만, 변수 저장 값은 계속 바뀔 수 있기 때문에 변수라고 한다!
C언어의 자료형은 이렇게 구성되어 있는데, 이건 다음 포스팅에서 좀 더 자세히 알아보자!
변수선언과 초기화
변수선언
변수는 고유한 이름이 있는, 자료 값이 저장되는 영역이다
프로그램에서 변수를 사용하기 위해서는 원칙적으로 사용 전에 먼저 변수 선언(variables declaration) 과정이 반드시 필요하다.
변수선언(variables declaration)은 컴파일러에게 프로그램에서 사용할 저장공간이 변수를 알리는 것으로, 프로그래머가 선언한 변수를 사용하겠다는 약속의 의미가 있다. 변수 선언을 하게 되면 컴파일러는 실제 변수 선언 문장에 맞는 저장 영역을 메모리에 확보한다
1) 변수선언하기
//변수 선언문
double height; //double=>자료형, height=>변수명
- 자료형을 지정한 후 고유한 이름인 변수 이름을 나열하여 표시한다
- 자료형은 int, double 처럼 원하는 자료형 키워드를 사용하고, 변수이름은 작성 규칙을 따라 작성한다
- 변수선언도 하나의 문장이기 때문에 세미콜론(;)으로 끝낸다
- 변수 선언 이후에는 지정한 변수이름으로 값을 저장하거나 값을 참조할 수 있다
2) 하나의 자료형, 여러 개 변수 선언하기
//변수 선언문
double height; //double=>자료형, height=>변수명
3) 변수 이름 작성하기
- 대표적인 식별자로 영어알파벳, 숫자, 밑줄(_)로 구성된다
- 숫자로 시작할 수 없음
- 라이브러리에서 밑줄로 시작하는 변수 이름을 종종 사용하기 때문에 밑줄로 시작하는 변수 이름을 선언하지 않는 것이 좋음
- 누구나 이해할 수 있게 변수에 저장되는 값의 목적에 맞는 이름과 적당한 길이로 작성한다
변수 초기화
변수를 선언한 이후에 값을 저장하는 것을 변수의 초기화라고 한다
변수를 선언하면서(선언한 뒤에) 변수명 이후에 대입연산자 =을 사용해 변수 초기화를 한다
1) 초기화
- =: 대입연산자, 오른쪽에 위치한 값을 이미 선언된 왼쪽 변수에 저장한다는 의미( <-)
- 대입문: 대입연산이 있는 문장
- l-value = r-value; //반드시 값을 저장할 수 있는 변수여야 함, 30 = 20 - 10;은 오
2) 변수 선언 후 초기화
int math; //메모리에 int 자료형을 저장할 수 있는 공간을 math로 이름지어 확보
float avg;
math = 60; //=: 대입연산자, 변수 math에 60을 저장한다는 의미(math <- 60)
avg = 88.8; //대입연산이 있는 문장을 대입문(assignment statement)
3) 변수 선언과 초기화를 동시에
int math; //메모리에 int 자료형을 저장할 수 있는 공간을 math로 이름지어 확보
float avg;
math = 60; //=: 대입연산자, 변수 math에 60을 저장한다는 의미(math <- 60)
avg = 88.8; //대입연산이 있는 문장을 대입문(assignment statement)
4) 컴파일오류
- 초기화되지 않은 지역변수의 저장 값과 오류
=> 지역변수: 함수 내부에서 선언된 변수
=> 초기화되지 않은 지역변수: 쓰레기 값(의미 없는 값)이 저장 => 저장 값이 정의되지 않음
=>다른 연산에 참조될 수 없어 다른 문장에서 참조 시 C4700 컴파일 오류
/*변수 초기화를 하지 않으면 컴파일 오류 발생
int math;
float avg;
*/
'일상 > 공부' 카테고리의 다른 글
[ ME ] 환전사이트 웹개발 백엔드 포트폴리오 (0) | 2024.01.19 |
---|---|
[ C언어 ] 자료형 (0) | 2024.01.19 |
[ Java ] 자바기초 - 용어정리, 출력, 단축키 (0) | 2024.01.16 |
[ C언어 ] C언어 토큰 - 키워드, 식별자 (0) | 2024.01.12 |
[ C언어 ] 문장, 블록, 주석처리하기 (1) | 2024.01.12 |