*데이터(정보)를 저장하는 공간,메모리 

 

- 컴퓨터는 주기억 장치로 램(Ram, Random Access Memory)을 사용하기 때문에 보통 메모리라고 하면 램을 의미한다.

 

- 메모리는 1바이트(byte)단위로 주소가 매겨져 있다.

 

- 주소가 1바이트 단위로 부여돼 있다고 해서 데이터가 꼭 1바이트 단위로 저장되어야 하는것은 아니다.

 

- 메모리의 최소 저장 단위는 비트(bit)이다.

 

- bit -> 컴퓨터가 표현하는 데이터의 최소단위

           0과1로 된 2진수

 

- 1bit -> 0,1

  2bit -> 00 01 10 11 4가지

 

- 1비트가 증가할 때마다 저장 단위가 2의 배수만큼 늘어난다.

 

- 비트가 8개 모이면 새로운 단위를 사용하는데 이것을 바이트(byte)라고 한다.

 

- 데이터를 저장할 때 메모리를 절약하기 위해서 데이터의 유효범위를 예상하고 적합한 크기를 결정하는것은

  메모리에 데이터를 저장하는데 필요한 가장 기본적인 작업이다. 

 

 

#자료형

 

* 자료형은 왜 필요할까 ?

 

- 자신이 사용할 데이터에 크기에 맞게 메모리(저장공간)를 할당해서 사용해야 한다. 그래서 메모리를 사용할 때

  몇 바이트의 메모를 사용할 것인지를 명시해야 하는데 이것을 데이터 타입(Data Type) 또는 자료형이라고 한다.

  (메모리를 사용하는 단위를 자료형이라고 한다.)

 

- C언어는 사용빈도가 높은 자료형을 예약어로 제공(Built-in Data Type)하고 , 나머지는 사용자가 만들어서 사용할 수 있는

  문법 (User-defind Data Type)을 제공한다.

 

 

#자료형의 종류

 

 

 

- 메모리공간 크기 확인 연산자(sizeof)

  메모리의 크기를 바이트(byte)단위로 계산해서 반환하는 연산자

 

sizeof(기본 자료형,내가 선언한 변수이름)

 

 

 

 

 

#int 변수 선언 및 초기화 (정수 4byte)

 

- 가장 기본이 되는 자료형

 

- C에서 가장빠르고 효율적으로 연산이 가능한 자료형이다.

 

- CPU에 따라서 크기는 달라진다. 

  16bit 2byte shrot

  32bit 4byte 

  64bit 8byte

 

- 완벽한 8byte크기를 보려면 컴파일 성능,os,하드웨어

 

 

 

#float & double 변수 선언 및 초기화 (실수 4byte,8byte)

 

- 실수 0.000000 까지 표현한다.

 

- 정수보다 실수로 표현할 수 있는 방법이 더 많다.

  int -> long int -> float -> double -> long double    

 

 

 

#char 변수 선언 및 초기화 [문자 1개]

 

- char는 ASCII CODE에 존재하는 문자

 

- 표현할 수 있는 데이터

  알파벳 , 정수 ,기호 등

 

 

 

#char[] 변수 선언 및 초기화 [공간갯수]

 

- 문자열을 입력하고 싶을 때는 char 1byte의 공간을 붙여서 사용

 

- 한글 = 2byte 영어 = 1byte를 차지한다.

 

- 문자열의 끝에는 문자가 끝났다는 null = \0이 자동적으로 붙는다.

 

Ex) "HELLO~" 문자열 메모리 공간 갯수

- 문자가 6개이므로 6바이트의 크기를 차지한다고 생각하겠지만 문자끝에 0이붙기 때문에 실제 메모리 구성은 다음과 같다. 

 

↓ 실제 메모리 구성

  

 

- 공간의 갯수를 구하고 +1하여 출력하거나 그보다 높은값으로 출력한다.

 

 

 

#scanf()

 

- 키보드로부터 입력을 받기 위한 라이브러리 함수

 

- 키보드로부터 값을 받아서 변수에 저장한다.

- 변수의 주소를 필요로 한다.

   scanf("%d",&x);  변수의 주소는 &x로 구할 수 있다. 

 

- 형식 지정자와 변수의 자료형은 일치해야 한다.

   scanf("%d %f",number, &grade); ← 형식 제어 문자열

 

 

 

#scanf 덧셈 프로그램

 

 

 

+ Recent posts