메모리(3)
-
C 언어 | 메모리 교환, 스택, 힙
학습 목표메모리에 저장된 두 값을 교환하는 코드를 작성할 수 있다. 메모리 교환입력값을 바꾸는 함수를 만들어 프로그램을 작성해보자. #includevoid swap(int a, int b);int main(void){ int x = 1; int y = 2; printf("x is %i, y is %i\n", x, y); swap(x,y); printf("x is %i, y is %i\n", x, y);}void swap(int a, int b){ int tmp = a; a = b; b = tmp;} 프로그램을 살펴보자.정수 a와 b를 입력받아 값을 바꾸는 swap() 함수를 만들었다.swap() 함수는 같은 정수형 변수 tmp를 사용해 값을 바꾼다.ma..
2021.02.22 -
C 언어 | 포인터
학습 목표포인터 변수를 정의하고 사용할 수 있다. 포인터C에서는 포인터 개념을 통해 변수의 주소를 쉽게 저장하고 접근할 수 있게 한다. 지난 글에서 배운 '*'연산자를 사용해서 프로그램을 만들어보자. #include int main(void){ int n = 50; int *p = &n; printf("%p\n", p); printf("%i\n", *p);} 위 프로그램을 보면 *p라는 변수에는 &n값, 즉 변수 n의 주소를 저장한다.int *p에서 *는 이 변수가 포인터임을, int는 이 포인터가 int 타입의 변수임을 가리킨다.첫 번째 출력 값을 보면 p는 형식 지정자 %p를 사용해 변수 n의 주소를 출력한다(= 포인터 p의 값).두 번째 출력 값을 보면 *p는 형식 지정자 %i..
2021.02.19 -
컴퓨팅 사고 | 하드웨어의 한계
✔ 학습목표 메모리 용량이 프로그램의 구동에 미치는 영향을 설명할 수 있다. 메모리 컴퓨터는 RAM(랜덤 엑세스 메모리)라는 물리적 저장장치를 포함하고 있다. 우리가 작성한 프로그램은 구동 중에 RAM에 저장되는데, 이는 유한한 크기의 비트만 저장할 수 있기 때문에 부정확한 결과를 내기도 한다. #include #include int main(void) { // 사용자에게 x 값 받기 float x = get_float("x: "); // 사용자에게 y 값 받기 float y = get_float("y: "); // 나눗셈 후 출력 printf("x / y = %.50f\n", x / y); } 그중 하나가 부동 소수점의 부정확성이다. 예시 프로그램을 보자. 이는 사용자에게 실수형 데이터 타입(float..
2021.01.31