C指针传递数据

用指针来传递数据的一个主要原因是函数可以修改数据。下面的代码段实现了一个交换函数,可以交换其参数所引用的值。这是很多排序算法中的常用操作。我们在这里用整数指针,通过解引它们来实现交换。

void swapWithPointers(int* pnum1, int* pnum2) {
    int tmp;
    tmp = *pnum1;
    *pnum1 = *pnum2;
    *pnum2 = tmp;
}

下面的代码段说明了这个函数的用法:

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

指针pnum1pnum2在交换操作中被解引,结果是修改了n1n2的值。图3-3说明了内存如何组织,左图表示swap函数开始时程序栈的状态,而右图则是函数返回前的状态。

图3-3:用指针实现交换

赞(1)

评论 抢沙发

评论前必须登录!

 

C指针