第五章 操作符和表达式 第六章 指针第七章 函数[C和指针]

这几天过节,喝大了几次玩了几个通宵,不过还是抽出时间看看书,好孩纸啊,~

第五章 操作符和表达式

第六章 指针

    注意几点:1)指针变量并非它所指向的内存地址所存储的值,需要用间接访问 * 来获得它;2)声明一个指针变量并不会给自动分配内存,所以在访问指针前指针必须进行初始化,或者让它指向现有的内存,或者给它分配动态内存;3)NULL指针表示不指向任何值,间接访问它往往返回内存位置为0的值以及终止程序。

第七章 函数

    递归的执行过程固然重要,但在掌握递归地推(压栈)和回归(出栈)的工作原理之后,就不要纠缠这些问题了,把精力放在关注收敛条件和递归函数设计上吧!要相信递归函数能顺利完成任务的。另外,不要被递归函数的清晰思路所诱惑,因为同样的问题(阶乘、斐波那契数等),递归的代价要远比其它方法(循环、迭代)大,因为正如你所知道的那样,递归的每次压栈都要讲中间计算结果存储在内存空间上。
    当然,你也许会说现在硬件的开销不再是问题,内存的花费代价远小于因思路混乱带来的烦恼,也罢。但需要知道的是,优秀的程序员是以代码有效和高效为己任的!

/*斐波那契数-递归实现*/
long fibonacci(int n)
{
    if( n <= 2)
        return 1;
    return fibonacci( n - 1) + fibonacci( n - 2);
}
/*
**用迭代方法计算第n个斐波那契的值
*/
long fabonacci( int n)
{
    long result;
    long previous_result;
    long next_older_result;
    
    result = previous_result = 1;
    
    while( n > 2)
    {
        n--;
        next_older_result = previous_result;
        previous_result = result;
        result = previous_result + next_older_result;
    }
    return result;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值