A!ive 2019-12-20 17:06 采纳率: 50%
浏览 140

请问这样写为什么不对呢?

typedef struct _list{
Node* head;
Node* tail;
} List;

关于链表的函数
void add(List* plist,int number)
{

这边开始        
Node*p=(Node*)malloc(sizeof(Node));
        p->value=number;
        p->next=NULL;

if(plist->head)
{
    plist->head=p;
    plist->tail=p;
}

else
{
    plist->tail->next=p;
    plist->tail=p;

        }

}
而这样写就是对的
// Node *last=plist->head;
// if(last)
// {
// while(last->next)//找到最后一个
// last=last->next;
//

// last->next=p; //然后连到最后一个上
// }
// else{
// plist->head=p;
// }

//

还有一个问题一直不是很明白,就是空指针能不能直接赋值
char *s=NULL;
s="sss";
如上没有问题
int *p=200;
如上编译有warning

  • 写回答

1条回答 默认 最新

  • shifenglv 2019-12-20 17:53
    关注

    S是指向字符型的指针,可以赋值为NULL,s="sss"是将字符串“sss”的指针(地址)付给s,注意s是指针,它表示值的储存地址,而不是值本身!p也是指针,是指向整形的指针,赋初值也是可以的,不过你这个200是一个整形的数值,而不是指针,指针是一个无符号的长整形。我不知道你这个200是表示数值还是表示地址,如果是值,那就不能这么做,如果是地址(指针),那就要显式表明:int p=(int)200

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。