gpt4 book ai didi

objective-c - 需要帮助理解 c 中的指针

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:14 25 4
gpt4 key购买 nike

我无法理解指针的概念,下面是代码。为什么 swap(&a1, &a2) 输出 -5, 6 而不是 6, -5 ?这些值已经交换了吗?

void swap(int *ptr1, int *ptr2){

int temp;

temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;

}

int main (int argc, char *argv[]){

void swap(int *ptr1, int *ptr2);
int a1 = -5;
int a2 = 6;
int *p1 = &a1;
int *p2 = &a2;

NSLog(@" a1 = %i, a2 =%i", a1, a2); // out puts: -5, 6

swap(p1,p2);
NSLog(@" a1 = %i, a2 =%i", a1, a2); // out puts: 6, -5

swap(&a1, &a2);
NSLog(@" a1 = %i, a2 =%i", a1, a2); // out puts: -5, 6
}

最佳答案

您对 swap() 的第一次调用交换了两个值,第二次调用将它们交换回来。

关于objective-c - 需要帮助理解 c 中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com