본문 바로가기
컴퓨터 언어/C\C++

[C 언어] pointer 이용해서 함수 구현하기(pythagoras, 원의 면적)

by SuperMemi 2020. 3. 16.
반응형

포인터의 기본원리에 대해서 앞의 글에서 설명했다.

잘모르겠다면 보고 오시길.

2020/03/16 - [Computer Language/C 언어] - [C 언어] 포인터 (pointer) 무엇인가? , 제대로 알자.

 

[C 언어] 포인터 (pointer) 무엇인가? , 제대로 알자.

포인터의 이해! 포인터도 특정한 변수를 가지는 변수다. 예를 들어서 설명하겠다. 검지 손가락을 펴서 앞에 있는 집을 가르켜 보아라. 그 안에는 사람이 살고 있을 것이다. 당신이 가르키는 행위 자체가 말 그대..

supermemi.tistory.com


예제 1. 피타고라스 함수.

void pythagoras(int x, int y, int *z){             // 아래의 변수 z와 *z는 다른 것을 의미함. 혼동하지말것.
    *z = (int)sqrt((double)(x*x) + (double)(y*y)); // 계산 결과를 포인터 변수 z가 가리키는 주소에 넣어줌.
}

int x, y, z;

x=3;
y=4;                                         
pythagoras(x,y,&z)                                 // &z를 통해 계산결과를 변수 z에 넣는다.
print("z=%d\n",z);                                 // 결국 출력은 변수 z=5를 출력할 것이다.
                                                   // 포인터를 사용하지 않고 그냥 z로만 식을 만든다면,
                                                   // 함수안에서만 계산될 뿐 변수 z에는 값이 없다.

예제 2. 원의 면적 구하기.

void area_of_circle(float r, float *area){
    float pi = 3.14;
    *area = pi*(r*r);                          //포인터 이용.
}

float r, area;                                 // r:radius
r=2.0;
area_of_circle(r, &area);                      // 면적 계산 결과를 변수 area에 넣음.
printf("\nradius = %f, area = %f",r,area);     // radius = 2.0, area = 12,45

출처

https://www.geeksforgeeks.org/c-programming-language/

반응형