刚碰到了一个小问题,那就是:C语言中的所有的函数都是必须要先定义然后再使用吗?这么问总是感觉有点诡异,因为C语言中变量函数等基本上都是先定义再使用的,这还有什么纠结的呢?可是把这个问题作为一个单独的问题提出来,答案恐怕就不是肯定的了,翻阅了相关资料发现,答案确实是否定的,现就C语言不遵循先定义再使用的两大特例介绍如下:
一、链表的节点定义打破了先定义再使用的限制,即可以用自己定义自己。
例1. struct student
{
long num;
float score;
struct student *next;
};
在上例中,指针*next的定义就是自己定义自己的方式。亲们,是不是和之前的变量用法有点不一样?
二、递归函数的调用也违反了先定义在使用。
例2 求n的阶乘n!
int Factorial(int n)
{
int sum_factorial=0;
if(n<0)
printf("n<0,data error!"):
else
if(n==0||n==1)
sum_factorial=1;
else
sum_factorial=n*factorial(n-1);
return(sum_factorial);
}
C语言中只有这两个特例,大家可以参考参考。
阅读(5646) | 评论(0) | 转发(0) |