gpt4 book ai didi

C 指针 - 指向同一地址

转载 作者:太空狗 更新时间:2023-10-29 15:11:41 24 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>

void foo(int *a, int *b);

void foo(int *a, int *b) {
*a = 5;
*b = 6;
a = b;
}

int main(void) {
int a, b;
foo(&a, &b);
printf("%d, %d", a, b);
return 0;
}

为什么 a = b (foo) 不起作用? printf 输出 "5, 6"谢谢。

最佳答案

它确实有效;它只是没有按照您的想法行事。

foo() 中,a = b 将指针 a 更改为指向 b 指向的任何内容.它对函数之外的任何东西都没有影响;它只会改变指针。

如果想把a指向的int的值改成和b指向的int的值一样,需要使用*a = *b,类似于您已经在函数中进行赋值的方式。

关于C 指针 - 指向同一地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3815400/

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