Chinaunix首页 | 论坛 | 博客
  • 博客访问: 552911
  • 博文数量: 181
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1498
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-22 15:17
个人简介

用发呆的时间来理清自己的思绪

文章存档

2015年(7)

2014年(134)

2013年(40)

分类: C/C++

2013-12-30 16:37:32

      刚碰到了一个小问题,那就是: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) |
给主人留下些什么吧!~~