先上真理, 估計也還是老師上課講函數時候常重複的那幾句,不過這就是真理:
值傳遞對於指針在函數中的應用來說,最顯著的優勢就是可以改變實參的值.下面 下麪還是簡單梳理一下. (會重複一些之前的例子)
#include <stdio.h>
//swap-指針作形參從而達到改變實參傳出多個變數的效果
void swap(int * pointer1, int * pointer2){
int mid; //必須是int變數而不是 int * 防止對原本的數據破壞
mid = * pointer2;
* pointer2 = * pointer1;
* pointer1 = mid;
}
//void swap( int x, int y ){
// int mid;
// mid = x;
// x = y;
// y = mid;
//} 此函數達不到交換兩個數的效果, 遵循呼叫函數」值傳遞「的方式,只改變了形參沒改變a, b.
void swapc (char * a, char * b) {
char c;
c = * a;
* a = * b;
* b = c;
}
int main(){
int a, b;
int * pointer_1, * pointer_2;
pointer_1 = &a;
pointer_2 = &b;
scanf("%d %d",&a, &b);
swap(pointer_1, pointer_2);
//直接對記憶體中的值操作, 狠得有效