C語言中的指針與函數有密切的關系。指針可以用于函數的參數傳遞和返回值,可以方便地在函數之間共享數據。
void changeValue(int *ptr) {
*ptr = 10;
}
int main() {
int num = 5;
changeValue(&num); // 通過指針將num傳遞給函數
printf("%d\n", num); // 輸出10
return 0;
}
int* createArray(int size) {
int *arr = (int*)malloc(size * sizeof(int)); // 動態分配內存
for (int i = 0; i < size; i++) {
arr[i] = i;
}
return arr; // 返回數組的首地址
}
int main() {
int *ptr = createArray(5); // 返回動態分配數組的首地址
for (int i = 0; i < 5; i++) {
printf("%d ", ptr[i]); // 輸出數組元素
}
free(ptr); // 釋放內存
return 0;
}
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*ptr)(int, int); // 聲明一個函數指針
ptr = add; // 指向add函數
int result = ptr(5, 3); // 通過指針調用函數
printf("%d\n", result); // 輸出8
ptr = subtract; // 指向subtract函數
result = ptr(5, 3); // 通過指針調用函數
printf("%d\n", result); // 輸出2
return 0;
}
總之,指針與函數之間的關系可以通過參數傳遞、返回值和函數指針的方式實現數據共享和動態調用函數。這使得C語言能夠更加靈活和高效地處理數據和函數。