首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数自动返回没有返回语句的指针

函数自动返回没有返回语句的指针
EN

Stack Overflow用户
提问于 2018-06-10 01:21:38
回答 1查看 47关注 0票数 -1

尽管我没有使用任何返回语句,函数fun如何返回指向创建的节点的指针。因此,节点中的值被成功打印出来。多么?

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

struct node
{
  int data;
  struct node *next;
};

main ()
{
  struct node *nl=fun();
  printf("%d",nl->data);
}

fun ()
{
    struct node *p= (struct node*)malloc(sizeof (struct node));
    scanf("%d", &(p->data));
    p->next=NULL;
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-10 01:26:11

较早版本的C允许函数不指定返回类型,并且返回类型自动为int

如果一个函数被声明为返回值(显式或隐式),那么它必须返回值,否则将返回。

还要注意,在C的老版本中,编译器在调用时会自动声明它以前从未见过的函数。这种类型和隐式返回类型都很容易出错,因此在C99标准中被删除了。

最后一个关于使用int作为指针的注意事项:在计算机历史上,指针和int通常是不同的。例如,如今在64位系统上,指针通常是64位,而int是32位。无论你怎么努力,你都不能把64位指针放在32位int中。这是你使用should never cast the result of malloc的原因之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档