C语言自定义函数返回值的问题

比如下面的程序:
#include <stdio.h>
int a(void);
int main()
{int b;
b=a();
printf("%d",b);
return 0;}
int a(void)
{return 5;}
为什么直接写成
a();
printf("%d",a);
就是错误的
向各位老师求解,谢谢啦

你调用了a()之后,函数a()会返回一个5,但你没有将其返回值保存起来,所以这个返回值会被抛弃。要么用一个变量将函数a的返回值保存起来:int b=a(),要么将函数的返回值作为另一个函数的参数输入:printf("%d",a())。追问

请问一下,那a()本身的值和返回值有什么区别或者关系啊?谢谢

追答

a()是函数,函数本身没有值的概念,或者说函数的值就是它的返回值。
不带括号的函数名a是一个常量函数指针,它指向该函数的入口地址。

温馨提示:答案为网友推荐,仅供参考
相似回答