小编use*_*685的帖子

内部函数打印不同的指针地址

我是C和指针的新手.以下是我正在尝试的一些代码.

struct node{
    struct node * next;
    struct node * prev;
    int num;
 };

 void func(struct node * leaf , struct node ** add_leaf){
     printf("function starts");
     printf("&leaf = %p  add_leaf = %p\n" , &leaf , add_leaf);
     printf("leaf = %p  *add_leaf = %p\n" , leaf , *add_leaf);
     printf("function over");
     return
 }


 void main(){
     struct node * leaf = (struct node*)malloc(sizeof(struct node));
     printf("leaf = %p\t&leaf = %p\n" , leaf , &leaf);
     func(leaf , &leaf);
 }
Run Code Online (Sandbox Code Playgroud)

leaf和*add_leaf的值相等,这正是我所期望的.但是我无法理解为什么在函数内部打印时,&leaf和add_leaf的值存在差异.在这里,我试图打印节点指针叶的地址.

c pointers

5
推荐指数
1
解决办法
168
查看次数

标签 统计

c ×1

pointers ×1