gpt4 book ai didi

c - 如何让C程序指针指向自身

转载 作者:行者123 更新时间:2023-11-30 14:29:11 25 4
gpt4 key购买 nike

我有一个 C 程序,我必须修改它,以便 a 链接到自身,b 链接到 c c 链接到 b

它确实可以编译。但我不确定我是否做对了。

#include <stdio.h>

int main(){
struct list {
int data;
struct list *n;
} a,b,c;

a.data=1;
b.data=2;
c.data=3;
b.n=c.n=NULL;
a.n=a.n=NULL;
a.n= &c;
c.n= &b;

printf(" %p\n", &(c.data));
printf("%p\n",&(c.n));
printf("%d\n",(*(c.n)).data);
printf("%d\n", b.data);
printf("integer %d is stored at memory address %p \n",a.data,&(a.data) );
printf("the structure a is stored at memory address %p \n",&a );
printf("pointer %p is stored at memory address %p \n",a.n,&(a.n) );
printf("integer %i is stored at memory address %p \n",c.data,&(c.data) );
getchar();
return 0;
}

如何获得指向自身的指针链接?

最佳答案

你说:

a links to itself, b links to c and c links to b

然后在您的代码中编写以下内容:

b.n=c.n=NULL;
a.n=a.n=NULL;

让我们一步一步来:

b.n=c.n=NULL;

分解为:

c.n=NULL;
b.n=c.n;

不是将 c 分配给 b,将 b 分配给 c,而是将 NULL 分配给 c.n,然后将 c.n 的值(NULL,因为您刚刚这样做了)分配给 b.c。

我的 C 有点弱,但你可能想要这样的东西:

b.n = &c;
c.n = &b;

这使用 & 地址运算符。对于 a.n=a.n=NULL; 表达式也是如此。

关于c - 如何让C程序指针指向自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173286/

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