본문 바로가기

C&C++ 개발

5. Pointers in C

해커랭크 요약 :

C에서 포인터의 기본적인 기능을 실행하는 것을 배우게 될 것이다.

C의 포인터는 다른 컨텍스트에서 메모리 주소를 공유하는 방법이다.

그것들은 주로 함수가 소유권이 없는 변수의 내용을 수정해야 할 때마다 사용된다.



요구사항 : 

뉴라인으로 구분된 두 개의 정수를 받아 그 정수들의 합계와 차(절댓값)을 리턴한다. 



기능설계:

pointer 사용

update 함수 사용하여 받아온 입력값들을 처리하여 리턴



코드 :


#include <stdio.h>
#include <stdlib.h>

void update(int *pa,int *pb) {
int a = *pa;
int b = *pb;
*pa = a+b;
*pb = abs(a-b);
}

int main() {
int a, b;
int *pa = &a, *pb = &b;
scanf("%d %d", &a, &b);
update(pa, pb);
printf("%d\n%d", a, b);

return 0;
}



추측한 학습목표 :

포인터란? -> 변수의 메모리 주소를 저장하는 변수

사용예

char *pc;

int *pl;

double *pd;


변수란? -> 메모리 상의 저장공간, 그 위치를 알면 사용할 수 있다


주소연산자란? -> 변수 앞에 붙여 사용하며 변수가 할당된 메모리의 시작 주소값을 구한다.

사용예

int a;

&a;


간접 참조 연산자 -> 포인터에 사용하며 포인터가 가리키는 변수를 사용한다.

*pl = 10;


절댓값을 써봐라 -> stdlib.h의 abs 함수 사용



'C&C++ 개발' 카테고리의 다른 글

7. Digit Frequency  (0) 2018.12.10
6. For Loop in C  (0) 2018.12.08
4. Functions in C  (0) 2018.12.07
3. Sum and Difference of Two Numbers  (0) 2018.12.06
2. Playing with characters  (0) 2018.12.05