这段代码怎么分析呀,关于指针的


#include <stdio.h>
int change(int*data)
{
    *data=*data%2;
    return(*data)+1;
}
main()
{
    int data=12;
    change(&data);
    printf("%d,",data);
    data=change(&data);
    printf("%d,",data);
}

函数传入地址,在函数里面对data做出的更改会影响主函数里面的data数值
具体见注释

#include <stdio.h>
int change(int*data)
{
    *data=*data%2;
    return(*data)+1;
}
main()
{
    int data=12;
    change(&data);//传入data地址
    printf("%d,",data);//打印更改后的data,12%2=0
    data=change(&data);
//第二次调用,传入00%2=0,打印return的data+1,1
    printf("%d,",data);//data的值为0
}

如果对你有帮助,还请点个采纳