Development/C, C++(556)
-
Ex16-매개변수를 통해 재귀함수 호출
매개변수를 통해 재귀함수 호출 소스코드 #include // 함수의 선언(출력X입력X 형태) void recursiveCall(int n); int main(void){ int a=1; recursiveCall(a); // 함수의 호출(매개변수를 통해 재귀함수 호출) return 0; } // 함수의 정의 void recursiveCall(int n) { if(n>5) // 함수의 무한 반복 문제를 해결하는 조건 return; // 값을 반환하지 않고 그냥 함수를 종료한다. printf("Recursive Call %d회 수행\n",n); recursiveCall(n+1); // 매개 변수 n을 하나 증가해서 self_service( ) 함수를 호출 출력결과
-
Ex15-재귀 호출시 무한루프 문제 해결
재귀 호출시 무한루프 문제 해결 재귀함수의 문제를 해결하기 위해 함수를 종료하고 반환할려면 return문 추가 재귀함수 호출 전에 종료하기 위한 조건을 반드시 수행해주어야 합니다. 학습내용 지역변수 선언 후 재귀함수 호출 정적변수 사용하여 재귀함수 호출 소스코드 #include // 함수의 선언(출력X입력X 형태) void recursiveCall(void); int main(void) { recursiveCall( ); // 함수의 호출 return 0; } // 함수의 정의 void recursiveCall(void) { int i=1; //지역변수, 초기화 매번 수행, 메모리 소멸은 중괄호 탈출될때 // static int i=1; //정적지역변수, 초기화는 한번만 수행, 메모리 소멸은 프로그램 종..
-
Ex14-재귀 호출시 문제
재귀 호출시 문제 무한반복의 문제 발생 재귀함수의 문제를 해결하기 위해 함수를 종료하고 반환하는 return문 추가 소스코드 #include // 함수의 선언(출력X입력X 형태) void recursiveCall(void); int main(void) { recursiveCall( ); // 함수의 호출 return 0; } // 함수의 정의 void recursiveCall(void) { printf("Recursive Call\n"); recursiveCall( ); //자기 자신을 호출 } 출력결과
-
1차원 배열
1차원 배열 int array[5]; array[0] = 90; array[1] = 80; array[2] = 70; 총 20byte 크기의 연속된 메모리 공간 할당. 초기화하지않은 배열요소의 값은 쓰레기값으로 채워집니다.
-
프로세스의 메모리 구조
프로세스의 메모리 구조 코드 영역프로그램의 실행 코드 또는 함수들이 저장되는 영역스택 영역매개 변수 및 중괄호(블록) 내부에 정의된 변수들이 저장되는 영역데이터 영역전역 변수와 정적 변수들이 저장되는 영역힙 영역동적으로 메모리 할당하는 변수들이 저장되는 영역 메모리영역에 따른 변수 할당 ※ 프로세스: 실행중인 프로그램
-
Ex13-레지스터 변수 , 레지스터 변수 vs 지역변수
레지스터 변수 레지스터 변수 vs 지역변수 강의내용 레지스터 변수가 지역변수보다 빠르다 그러나 측정할 때 마다 차이가 날수 있습니다. 레지스터 변수로 설정하였더라도 코드 최적화 단계에서 자동으로 설정되기 때문에 개발자가 register라고 할 필요가 없으며 그렇기 때문에 지역변수와 레지스터변수의 차이가 별로 없습니다. 소스코드 #include #include // 연산 속도 측정을 위해 clock( ) 함수 사용 #define MAX 1000000 // 백만을 상수화 int main(void) { // register int i; // int i; int i; // int i; clock_t startTime, endTime, result; // clock_t는 long형, typedef long clo..