1.編譯過程
預處理
#include <stdio.h>
#define MAX 100
編譯
匯編
鏈接
C程序在執行過程中使用內存來存儲變量、函數和其他數據。內存管理是一個重要的主題,涉及到棧、堆和靜態存儲區等概念。
3.1 棧
#include <stdio.h>
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int mAIn() {
int num = 5;
int result = factorial(num);
printf("Factorial of %d is %dn", num, result);
return 0;
}
3.2 堆
#include <stdio.h>
#include <stdlib.h>
int main() {
int* nums = (int*)malloc(5 * sizeof(int));
if (nums == NULL) {
printf("Memory allocation failedn");
return 1;
}
for (int i = 0; i < 5; i++) {
nums[i] = i + 1;
}
for (int i = 0; i < 5; i++) {
printf("%d ", nums[i]);
}
free(nums);
return 0;
}
3.3 靜態存儲區
void foo(int x) {
printf("%dn", x);
}
int main() {
foo(10);
return 0;
}