배열(Array)(1)

박상록(Sangrok Park)·2021년 2월 3일
0

Computer Science Basic

목록 보기
10/13

각각의 자료형들은 아래와 같은 Memory Usage를 가진다

사용하는 운영체제에 따라 조금은 다르지만, 각각의 자료형은 특정 메모리 공간을 차지하게 된다.

  • bool 1byte
  • char 1byte
  • int 4 byte
  • float 4 byte
  • long 8 byte
  • double 8byte
  • stirng ?byte(길이에 따라 다름)
    ...

Ram

각각의 검은 칩들은 특정 바이트용량을 의미하며, 1GB라면, 10억 바이트가 된다.

Ram은 프로그램 구동시에 정보가 저장되는 곳이다.

이렇게 칸으로 나눈다면, 각각의 칸마다 첫 바이트, 두번째 바이트... 이렇게 생각할 수 있다.

물론 1GB라면 10억바이트로 나눠야 하니 훨씬더 칸이 작아지겠지만!

그냥, 각 바이트에 숫자를 붙여서(주소를 붙여서) 정보를 저장했다가 뺐다가 한다고 생각하면 된다.

char 1byte

라고했다 그러면 저. 메모리 칸 중의 하나를 차지한다고 보면 된다.

int 4 byte

그러면 메모리의 4칸 즉 4바이트를 차지한다고 보면 된다.

저 메모리 바이트 하나 하나는 아주작은 트랜지스터든 어떤 방식으로 0과 1을 나타내고 있을 것.

참고로 C에서 char 데이터타입을 할당할 때는

char c1 = '!';

이렇게 꼭 홑 따음표를 쓴다고 한다. 그냥 string과 구별하기 위해 그렇다고 한다.

컴퓨터는 어떻게 메모리에 정보를 저장하나

char c1 = 'H';
char c2 = 'I';
char c3 = '!';

이 값들은, 메모리에 이렇게 저장 된다.

알파벳 => 아스키코드 => 이진수로 변환, 메모리 저장

여러개의 정보를 하나의 메모리에 저장하고 싶다면

Array(배열) 을 써라!

int main(void) 
{
    int scores[3];
    scores[0] = 72;
    scores[1] = 73;
    scores[2] = 33;
    
    printf("Average: %i\n", (scores[0] + socres[1] + scores[2] / 3));
}

특이한 점은 배열의 길이를 정해줄 때[3]이라고 해준 것. length속성은 자바스크립트와 마찬가지로 0부터가 아닌 1부터 시작인 것 같다.

출처 : [부스트코스] 모두를 위한 컴퓨터 과학 (CS50 2019) (https://www.boostcourse.org/)

profile
한 줌의 소금과 같이 되고 싶은 개발자

0개의 댓글