사용하는 운영체제에 따라 조금은 다르지만, 각각의 자료형은 특정 메모리 공간을 차지하게 된다.
![]()
각각의 검은 칩들은 특정 바이트용량을 의미하며, 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 = '!';
이 값들은, 메모리에 이렇게 저장 된다.
알파벳 => 아스키코드 => 이진수로 변환, 메모리 저장

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/)