【发布时间】:2016-05-03 00:20:54
【问题描述】:
在 C 中,我正在玩一个链表,并查看 printf 在传递各种版本的变量名时会显示什么。
typedef struct node{
int node_value
struct node *next;
} list_node;
int main(){
list_node *list;
list = getnode();
printf("address of *list %d\n", &list);
printf("list->next of *list %d\n", list);
printf("list->next of *list %d\n", list->next);
printf("double pointer **list %d\n", *list);
return 0;
}
*list 将打印node_value
但是&list and list 和有什么区别呢?我知道and是对变量的引用,不带*的变量名就是第一个入口的地址。但是,当我在输出两者时得到不同的值时。
谢谢。
【问题讨论】:
-
However, when I get different values when outputting the two.当然你得到不同的值。list是列表的地址,&list是指向列表的指针的地址。 -
BTW 用于打印指针值,您应该使用
%p而不是%d。 -
我有一个问题......没有人必须抨击它。那么如果我还在学习呢,我认为开发者社区的思想更加开放。
-
令人惊讶的是,苹果与香蕉的特性不同。而
main的签名有误。
标签: c pointers linked-list