通过指针修改值

#include<stdio.h>
void numberC(int a,int b)
{
    int c;
    c=a;
    a=b;
    b=c;
}
void addressC(int *c,int *d)
{
    int *a;
    a=c;
    c=d;
    d=a;
}
void towardC(int *c,int *d)
{
    int a;
    a=*c;
    *c=*d;
    *d=a;
}
int main()
{
    int a=1,b=2;
    int *c=&a,*d=&b;
    numberC(a,b);
    printf("直接转换:a=%d b=%d\n",a,b);
    a=1,b=2;
    addressC(c,d);
    printf("地址转换:a=%d b=%d\n",a,b);
    a=1,b=2;
    towardC(c,d);
    printf("指针转换:a=%d b=%d\n",a,b);
    return 0;
}

在c语言中,实参和形参之间的数据传递是单向的“值传递”方式,调用函数不能改变实参变量的值,当指针变量作为函数参数时也遵循。调用函数不能改变实参指针的值,但可以改变实参变量所指向的变量的值(引用调用)。采用引用调用需要在函数定义时将指针作为函数的形参,在函数调用时把变量的地址作为实参。

posted @ 2017-10-31 22:41  balance_uit  阅读(853)  评论(0)    收藏  举报