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 32 33 34 35 36 | #include<stdio.h> #include<stdlib.h> int num = 0; // num은 전역변수, num1은 스태틱 변수로 int abc(int a, int b) { // 프로그램이 종료되기 전까지 static num1; // 소멸되지 않고, 데이터 영역에 포함되어 있다. int temp; // 5줄과 7줄은 각각 매개변수, 지역변수로 if (b > a) { // 함수가 호출되었을때 같이 호출되었다가 temp = a; // 함수가 종료되면 소멸하며, 스택영역에 포함되어있다. a = b; b = temp; } if (num == 1) { //전역변수 num이 1이면 a를 더한다. num1 += a; return num1; } num1 = a; return (a - b); } int main() { int q, w, i; int *arr; scanf("%d %d", &q, &w); // printf와 scanf는 코드 영역에 속한다 printf(">> %d ? %d = %d <<\n", q, w, abc(q,w)); // scanf("%d %d", &q, &w); // num1은 스태틱 변수 즉 사라지지 않으므로 num = 1; // 23줄에서 입력한 것 중에 큰값과 25줄에서 입력한것중에 큰값이 printf(">> num1 = %d <<\n", abc(q, w)); // 합해진 결과가 나온다! arr = (int*)malloc(sizeof(int) * 5); // 동적할당을 통해 heap영역에 접근 for (i = 0; i < 5; i++) { arr[i] = i; // 동적할당한 arr에 배열처럼 값을 넣어주고 } for (i = 0; i < 5; i++) { printf("arr[%d] = %d\n", i, arr[i]); // 배열처럼 값을 출력 } return 0; } | cs |
'IT전공관련' 카테고리의 다른 글
Easy keygen 설명 (0) | 2017.07.20 |
---|---|
어셈블리어 용어 정리 & 리눅스 용어 정리 (0) | 2017.07.19 |
x86 CPU 레지스터 조사 (1) | 2017.07.17 |
시스템 메모리 구조 조사 및 설명 (0) | 2017.07.17 |
함수 프롤로그, 에필로그, 스택 프레임 조사 (0) | 2017.07.17 |