指针作为参数

  1. 地址传递
  2. 值传递

先来看一个值传递的demo

#include <iostream>
using namespace std;

void swap(int a,int b) //拷贝的值
{
    int t;
    t = a;
    a = b;
    b = t;
}
int main(int argc, const char * argv[]) {
    //值传递的demo
    int a=10,b=100;
    swap(a,b);
    cout<<"a="<<a<<" b="<<b<<endl;
    return 0;
}

run

a=10 b=100
#include <iostream>
using namespace std;

void swap(int *a,int *b)
{
    int t;
    t = *a;
    *a = *b;
    *b = t;
}
int main(int argc, const char * argv[]) {
    //值传递的demo
    int a=10,b=100;
    swap(&a,&b);
    cout<<"a="<<a<<" b="<<b<<endl;
    return 0;
}
a=100 b=10

可以看到通过指针传递可以修改变量,其实指针传递也是copy,只不过copy的是指针,随时新的变量,单指向没有变,所以可以改变指向的变量

results matching ""

    No results matching ""