티스토리 뷰
#include <stdio.h>
int func(void);
int main(void)
{
int i, sum=0;
for(i=0;i<10;i++)
{
sum +=func();
}
printf("sum = %d",sum);
return 0;
}
int func(void)
{
int a=0; // 지역변수로 선언할때, func함수는 호출될때마다
// a=0에서 시작하고 ++한 값을 넘기므로, 1을 10번 출력하고, sum=10이 됨
a++;
printf("%d\n",a);
return a;
}
-------------------------------------
결과 :
1
1
1
1
1
1
1
1
1
1
sum = 10
반면 정적 지역함수(static)로 정의하면,
#include <stdio.h>
int func(void);
int main(void)
{
int i, sum=0;
for(i=0;i<10;i++)
{
sum +=func();
}
printf("sum = %d",sum);
return 0;
}
int func(void)
{
static int a=0; // 정적 지역변수로 선언할때, 리턴값 a는 지역함수 밖에서도 기억되고 a=0에서 10까지 증가하여 sum=55가 됨
a++;
printf("%d\n",a);
return a;
}
-------------------------------------
1
2
3
4
5
6
7
8
9
10
sum = 55
'Test > C' 카테고리의 다른 글
초를 입력하면 일/시/분/초 로 계산 (0) | 2018.12.07 |
---|---|
cf. 형변환, 곱셈, 나눗셈 (0) | 2018.12.07 |
strcmp, strncmp 함수 (0) | 2017.08.28 |
strcat, strncat 함수 (0) | 2017.08.28 |
문자열 상수는 연속된 주소공간에 저장되지 않는다? (0) | 2017.08.27 |
- Total
- Today
- Yesterday
- dp-2
- 3par
- insert
- 차집합
- dezoomify
- vmware.powercli
- virt-sysprep
- 읽어오기
- 스토리지
- dp-1
- powercli
- Join
- 부동없이
- set()
- LIST
- fromkeys
- 대소문자
- vmware
- artandculture
- 중복제거
- cloud-init
- oracle
- EXA
- sysprep
- 정렬
- 변수화
- exadata
- powershell
- storage
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |