zoukankan      html  css  js  c++  java
  • c语言基本函数

    1. 用宏定义写出swap(x,y)

    #define swap(x, y)
    
    x = x + y;
    
    y = x - y;
    
    x = x - y;

    2.数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:

    例子:

    1,2,3,4,5,6,7,7,8,9

    1,2,3,4,5,6,7,8,9,10

    那么7就是a[6],找到a[6]的位置,

    也就是:10 - (10-7)-1;

    int *do_dup(int a[],int N)    //未经调试
     {
          int sum = 0;
          int sum2;
          for(int i=0;i<N;++i)
          {
            Sum+=a[i];
          }
          Sum2 = (1+N)*N/2;
          Return &a[N-(sum2-sum)-1];
     }

     3.判断2的整数次幂:

    int fuc(int i)
    {
        return ((i > 0) && ((i & (i - 1)) == 0));//2的n次幂肯定是大于0的
    }

     4.unsigned int intvert(unsigned int x,int p,int n)实现对x的进行转换,p为起始转化位,n为需要转换的长度,假设起始点在右边.如x=0b0001 0001,p=4,n=3转换后x=0b0110 0001

    unsigned int intvert(unsigned int x,int p,int n) //假定p=4,n=3
    {
    unsigned int _t = 0;
    unsigned int _a = 1;
    for(int i = 0; i < n; ++i)//循环的目的主要是-t
    {
      _t |= _a;       //位或
      _a = _a << 1;                 //其实这样的写法还是很经典的;!
    }
    _t = _t << p;   //转换后_t变为1110000
    x ^= _t;       /异或,将原来的位取反
    return x;
    }

    5.strcpy

    功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
    //
    //C语言标准库函数strcpy的一种典型的工业级的最简实现。
     
    //返回值:目标串的地址。
     
    //对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。
     
    //参数:des为目标字符串,source为原字符串。
    #include <assert.h> //assert where .h
    #include <stddef.h> //NULL where .h
    char* strcpy(char* des,const char* source)
     
    {
     
     char* r=des;
       
      assert((des != NULL) && (source != NULL));
     
     while((*r++ = *source++)!='');
     
     return des;
     
    }
     
    //while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值''后,循环停止。

    6.计算字符串实际长度

    strlen

    int strlen(const char* str)
    {
       assert( str != NULL );
       int len;
      whle(*str++ != ‘’)len++return len;         
    }

    7.sizeof()

    返回的是变量声明后所占的内存数

    原型:无

    8.

    ---------

  • 相关阅读:
    eclipse 远程debug tomcat web项目
    阿里巴巴fastjson的使用
    STS 3.6.4 SpringMVC 4.1.6 Hibernate 4.3.8 MySQL
    Ubuntu su 认证失败
    mysql mha高可用架构的安装
    Swift开发教程--关于Existing instance variable &#39;_delegate&#39;...的解决的方法
    设计模式-适配器模式(Go语言描写叙述)
    Xcode6.3 怎样使用Leaks查看内存泄露
    java中的subString具体解释及应用
    出走三上海篇
  • 原文地址:https://www.cnblogs.com/Ph-one/p/6547185.html
Copyright © 2011-2022 走看看