在C語言中,main函數(即主函數)的參數傳遞方式是按值傳遞。這意味著當你將一個變量作為參數傳遞給main函數時,實際上是傳遞了該變量的副本,而不是原始變量本身。
具體來說,當你調用int main(int argc, char *argv[])
或int main(int argc, char **argv)
時,參數argc
和argv
分別接收命令行參數的數量和指向這些參數的指針。這里的argc
是一個整數,表示命令行參數的個數(包括程序名本身),而argv
是一個字符串指針數組,用于存儲指向各個參數的指針。
需要注意的是,雖然main函數是按值傳遞參數的,但在函數內部對參數進行的修改不會影響到原始變量。如果你想在函數內部修改原始變量的值,你需要通過指針來實現。
以下是一個簡單的示例,演示了如何在main函數中使用參數:
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main(int argc, char *argv[]) {
int x = 5;
int y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
在這個示例中,我們定義了一個名為swap
的函數,它接受兩個整數指針作為參數。在main函數中,我們使用&
運算符獲取變量x
和y
的地址,并將它們傳遞給swap
函數。這樣,swap
函數就可以修改原始變量的值,而不僅僅是它們的副本。