C5

시연·2024년 7월 25일

2024-07-25

  • point는 정말 중요하다!
  • 운영체재를 잘 알고 있는 것이 중요
  • CPU(2차원): 중앙처리장치(=뇌)(속도가 빠름)
  • 램: 보조기억장치(=단기기억) -> 전원이 꺼지면 사라짐
  • 하드디스크: 주기억장치(읽는 속도가 느림)
    ram 형식으로 못 만드는 이유는 경제성 때문 너무 비싸..
    cpu-ram-HDD
  • GPU(3차원)
  • 메모리 할당&접근 불가 unmanaged lang: 자바, 파이썬
  • c : managed lang 메모리 할당&접근 불가

포인터

  • &i : 주소값을 가져온다.
  • *p = 50; => 포인터 주소 값에 직접 접근해서 대입했다.
  • unsigned char : 음수를 제거하고 그만큼 양수에서 쓰게 해준다.
  • 그 위치에 접근해서 수정한다: 포인터
    #include <stdio.h>

int main(void) {
unsigned char c = 200;

// 수정가능지역 시작
unsigned char p = &c;
p =220;
// 수정가능지역 끝

printf("c : %d\n", c);
// 출력 => c : 220

return 0;
}

// 문제 : 포인터 변수 p를 이용해서 변수 2개의 값을 변경해주세요.
// 조건 : 변수 a, b에 값을 직접 할당하지 마세요.

#include <stdio.h>

int main(void) {
int a = 10;
int b = 20;

int* p; -> p에다가 포인트 함수를 만들고

// 수정가능 시작
p = &a; -> 주소 값 자체를 바꾼다.
p = 100;
p = &b;
p = 200;
// 수정가능 끝

printf("a : %d\n", a);
// 출력 => a : 100
printf("b : %d\n", b);
// 출력 => b : 200

return 0;
}

  • 메모리 물리 수정을 했을때 그 앞에 있는 type만큼 이동한다.

0개의 댓글