gpt4 book ai didi

c - 与 C 中的结构和指针相关的问题

转载 作者:行者123 更新时间:2023-12-05 05:01:36 25 4
gpt4 key购买 nike

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

struct Node{
int data;
struct Node* link;
};
struct Node* A;
int main(){
struct Node* temp = (struct Node*)malloc(sizeof(Node));
temp->data = 2;
temp->link = NULL;
A = temp; // in this line i have doubt
return 0;
}

疑点在于:A 和 temp 都是指向节点的指针。 A = temp 有两种含义:

  1. 我们正在复制 A 中 temp 的地址,因此 A 将指向相同的地址。(意味着它们都是相同的身份/变量)
  2. 我们正在复制 temp 的元素并将其分配给 A 的元素(意味着它们都是单独的标识/变量)。我们通常在结构中这样做。

所以请帮助我理解它。

最佳答案

分配指针只是复制地址,而不是指针指向的内容。所以 A = temp; 使得 Atemp 指向同一个地址。

如果你想复制元素,你必须解引用指针:*A = *temp;

关于c - 与 C 中的结构和指针相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62650924/

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