</code> 언어 고수님들 도와주세요.
글쓴이: diget91 / 작성시간: 금, 2019/05/03 - 2:51오후
============================ 첫번째 =======================================
#include <stdio.h>
void add(int val);
int main(void)
{
int a;
while (1)
{
printf("저금할 금액 : ");
scanf("%d", &a);
if (a == -1)
break;
add(a);
}
printf("입금완료\n");
return 0;
}
void add(int a)
{
static int add=0;
add +=a;
printf("현재까지 저금된 금액:%d\n", add);
}=============================== 두번째 =========================================
#include <stdio.h>
void add(int val);
int main(void)
{
int a;
while (1)
{
printf("저금할 금액 : ");
scanf("%d", &a);
if (a == -1)
break;
printf("현재까지 저금된 금액:%d\n", add(a)); //<<<<<<<<<<<<이부분 왜안되나요
}
printf("입금완료\n");
return 0;
}
void add(int a)
{
static int add=0;
add +=a;
}========================================================
첫번째로 실행하면 잘되는데 두번째는 실행이 안되요
첫번째는 책에 있는 내용이고 두번째는 제가 이렇게하면 안되나 하고 바꿔봤는데요
// printf("현재까지 저금된 금액:%d\n", add(a));
로 하면 왜안되는건지 아시는분 계시면 알려주실수 있으신가요..?
Forums:


add함수가 리턴형이 void이기 때문이죠.
리턴값을 잘 생각해보세요.
감사합니다 잘생각해보겠습니다!
감사합니다 잘생각해보겠습니다!
리턴값보다는 scope 때문이죠
add 안에서 선언한 변수라 main에서는 안보입니다.
윗분말이 맞네요
void라 그래요
void add(int a)
void add(int a) { static int add=0; add +=a; }변수 이름도 좀 바꾸면 좋겠군요.
int add (int a) { static int sum = 0; sum += a; return sum; }댓글 달기