CS 공부

정보처리기사 실기 C 공부 ②

Algomalgo 2024. 4. 22. 01:58
728x90
  • 주소를 리턴하는 함수
int i;
int x = 10;
int *p;
int a[100];
for (i=0; i<100; i++)
	a[i] = i * 10;
p = func(x, a);
printf("sum=%d", x + a[0] + a[1] + p[0] + p[1]);    // 10 + 0 + 20 + 20 + 20 = 70

int *func(int a, int *x){
	a = a + 10;
    x = x + 1;
    *x = *x * 2;
    return x;
}

 

  • static 변수

단 한번만 초기화하고, 그 이후에는 전역변수처럼 프로그램이 종료될 때까지 메모리 공간에 존재하는 변수
초기값이 지정이 안되면, 자동으로 0이 대입된다.

// 지역 변수 사용 시
void test(){
    int a = 10;
    a++;
    printf("%d", a);    // 11, 11 출력
}
void main(){
    test();
    test();
}


// static 변수 사용 시
void test(){
    static int a = 10;
    a++;
    printf("%d", a);    // 11, 12 출력
}
void main(){
    test();
    test();
}

 

728x90