사용하는 운영체제에 따라 조금은 다르지만, 각각의 자료형은 특정 메모리 공간을 차지하게 된다.
각각의 검은 칩들은 특정 바이트용량을 의미하며, 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/)