본문으로 바로가기

혼공단 11기 혼공 C 개정표 미션

 


[기본 미션]

포인터의 핵심 내을 정리하고 공유하기

  1. 포인터의 정의 : 포인터는 변수의 주소를 저장하는 변수로, 다른 변수의 메모리 위치를 가리킵니다. C언어에서는 '*' 기호를 사용하여 포인터를 선언합니다.
  2. 용도 : 포인터는 메모리 주소에 직접 접근하여 데이터를 읽거나 수정하는 등의 작업을 가능케 합니다. 동적 메모리 할당, 함수 호출 시 매개변수 전달, 배열과의 고나계 등 다양한 용도로 활용됩니다.
  3. 포인터의 선언및 사용 : 포인터는 해당 데이터 형식에 대한 포인터를 선언해야 합니다. 예를 들어, 정수를 가리키는 포인터는 다음과 같이 선언됩니다. int *ptr 선언된 포인터는 주소 연산자 '&'를 이용하여 변수의 주소를 받거나, 동적으로 할당된 메모리 주소를 저장할 수 있습니다.
  4. 포인터 연산 : 포인터는 산술 연산이 가능하며, 주로 배열 또는 메모리 블록을 순회하는데 사용됩니다.
  5. NULL 포인터 : 포인터는 NULL 값으로 초기화할 수 있으며, 이는 포인터가 유효한 주소를 가리키지 않음을 나타냅니다. 유효성 검사 등에서 활용됩니다. ex) int *ptr = NULL;

포인터는 C언어의 강력하면서도 복잡한 기능 중 하나로, 올발른 사용이 필요합니다. 올바르게 다루면 메모리 관리와 성능 최적화에 도움을 줄 수 있습니다.


[서브 미션]

p.289 도전 실전 예제 풀고 인증하기

#define _CRT_SECURE_NO_WARNINGS
#include  <stdio.h>

void swap(double *pa, double *pb) {
	double temp = *pa;
	*pa = *pb;
	*pb = temp;
}
void line_up(double *maxp, double *midp, double *minp) {
	if (*maxp < *midp) swap(maxp, midp);
	if (*maxp < *minp) swap(maxp, minp);
	if (*midp < *minp) swap(midp, minp);
}
int main(void) {
	double max, mid, min;
	printf("세 개의 실수를 입력하시오: ");
	scanf("%lf %lf %lf", &max, &mid, &min);
	line_up(&max, &mid, &min);
	printf("정렬된 값 출력 : %.1f, %.1lf, %.1lf\n", max, mid, min);
	return 0;
}


 

 

'C 프로그래밍 > 혼공C 혼공학습단 11기' 카테고리의 다른 글

[혼공C] 11기 회고록  (0) 2024.02.11
[혼공C] 11기 5주차 미션  (0) 2024.01.31
[혼공C] 11기 4주차 미션  (0) 2024.01.24
[혼공C] 11기 3주차 미션  (0) 2024.01.18
[혼공C] 11기 2주차 미션  (1) 2024.01.10