C值传递数据

如果不通过指针传递参数,那么交换就不会发生。下面的函数通过值来传递两个整数:

void swap(int num1, int num2) {
    int tmp;
    tmp = num1;
    num1 = num2;
    num2 = tmp;
}

下面的代码将两个整数传递给函数:

int main() {
    int n1 = 5;
    int n2 = 10;
    swap(n1, n2);
    return 0;
}

然而,这样并没有实现交换,因为整数是通过值而不是指针来传递的。num1num2中保存的只是实参的副本。修改num1,实参n1不会变化。修改形参不会影响实参。图3-4说明了形参的内存分配。

图3-4:通过值传递数据

赞(2)

评论 抢沙发

评论前必须登录!

 

C指针