글 수 3,386
#include <stdio.h>
int power(int a,int b)
{
int c=a;
(b-1)&&(c*=power(a,b-1));
return c;
}
void main(void)
{
printf("%d\n",power(2,10));
}
(b-1)&&(c*=power(a,b-1));
이문장이 어떻게 동작하는지 궁금합니다 ㅠㅠ
웹서핑 하다가 발견한 문장인데 난생 처음보는문장이라..

2011.04.17 17:55:13 (*.115.46.170)
어떻게 되는지 모를 때는 공책과 샤프(혹은 볼펜)을 들고 프로그램 실행되는 결과값을 필기하며 따라가 봅니다.
그럼 90%는 알 수 있음 이응이응
간단히 말하면 b-1 && power(...);니까 b가 1이 될 때 까지 자신을 계속 호출하는 형식이에요.
(b-1 = 0이 되면 &&연산자가 0이 되므로 더이상 재귀함수를 호출하지 않고 리턴만 합니다.)




상위 오른쪽 메뉴에 "지식in" 만들면서 질문게시판과 통합!
&& 비트연산자는 알꺼고...
c*= 이부분인가? c+= 처럼 쓰는거고...
재귀함수네?
어떤 원리인지는
테스트케이스 하나 정해서 직접 계산해봐~