• 剑指Offer学习笔记 分类: C/C++ 2015-06-04 11:05 78人阅读 评论(4) 收藏


    1、在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针。

    2、对于str1、str2定义时须分配内存空间,所以地址不同,而str3、str4都指向某一常量区,所以地址是相同的。

    char str1[] = "hello world";
    char str2[] = "hello world";
    
    char *str3 = hello world";
    char *str4 = hello world";
    </pre><pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;">3、合并数组时,考虑从后向前复制,效率可能更高。</span>

    4、递归在本质上就是一个栈结构。

    5、递归由于是函数调用自身,而函数调用是有时间和空间的消耗的:每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址及临时变量,而且往栈时压入数据和弹出数据都需要时间。

    6、右移时,如果数字是一个无符号数值,则用0填补最左边的n位。如果数字是一个有符号数值,则用数字的符号位填补最左边的n位。

    7、把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0。

    8、位运算的效率比乘除法及求余的效率要高很多,常见的2的倍数的乘除法、奇偶判断等都可能用位运算代替。

    9、当用一个指针遍历链表不能解决问题时,可以采用两个或更多指针,并使用两个指针的移动速度不同步。

    10、对于函数输入,一定要先判断输入是否合理;其次要检查边界条件,考虑问题的全面性。

    11、路径是从根结点出发到叶结点,也就是说路径总是以根结点为起点。

    12、正整数的最大值是0x7FFFFFFF,最小的负整数值是0x80000000。

    13、写代码之前首先考虑测试用例。

  • 相关阅读:
    生成器
    字典生成式
    列表推导式
    函数基础实战之ATM和购物车系统
    函数基础小结
    函数嵌套
    可变长参数
    函数参数
    java NIO(三)----通道(Channel)
    java NIO(二)----直接缓冲区和非直接缓冲区
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687129.html
Copyright © 2020-2023  润新知