C

C语言较偏基础知识:

1)内联函数

关键字: inline   (放在函数定义体前使函数成为内联)

作用:不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处

注意事项:1.每一处内联函数的调用都要复制代码,将使程序的总代码量增大,消耗更多的内存空间。

                  _>  规模很小(一般5个语句一下)而使用频繁的函数,(在函数规模很小的情况下,函数调用的时间开销可能相当于甚至超过执行函数本身的时间,把它定义为内联函数,可大大减少程序运行时间)

          2.内联函数不能包括复杂的控制语句,如循环语句和switch语句,递归函数更无法内联处理。

 

2)C/C++的128位整数类型     __int128 (双英文下划线)

   typedef __int128 ll;

 注意事项:1. __int128不支持cin,cout,scanf,printf对其定义的变量的输入输出,需自己另写输入输出函数。

           2.大部分OJ可以编译,C/C++标准,GCC不支持

 输入输出函数模板(供大家借鉴):

#include <bits/stdc++.h>
using namespace std;
inline __int128 read()
{
    __int128 x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x*f;
}

inline void write(__int128 x)
{
    if(x<0)
    {
        putchar('-');
        x=-x;
    }
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
}

int main()
{
    __int128 a = read();
    __int128 b = read();
    write(a + b);
    return 0;
}

  3)int b=lower_bound(r,r+n,a)-r;

      ---- b表示元素a在r数组内的位置

    

    4)C++的模板类型 pair

    格式:pair<type1,type2>p   ---- type可以为任何类型

    特点:默认对first升序,若第一类型相等,对second升序

    赋值:

pair<int,int>p;
p=make_pair(1,2);  //(1)
p.first=1,p.second=2; //(2)

 

        5)十进制(0~9及正负号组成)               ---%d

         八进制(以0为前缀,0~7组成,无符号)     ---%0

         十六进制(以0x或0X为前缀,0~9及A~F组成,无符号)   ---%x(显示加“#”)

 

  6)计算程序运行时间https://blog.csdn.net/qq_34732729/article/details/87879543

 

    7)sizeof 关键字, 不是函数,它后面的()并不是必须的 sizeof操作符计算的是系统为它后面的变量或类型名分配的空间大小,无论其中是否存储了有用数据。

       strlen  函数,  ()中必须是字符串指针或字符串常量,它返回的是检测对象中第一个'\0'前的字符个数,不含'\0'。

char ch[10];
scanf("%s",&ch);
int a=sizeof(ch);
int b=strlen(ch);
     //输入andrea ,a=10,b=6;

 

 

 

 

          

posted @ 2020-04-30 22:18  十分的月亮  阅读(619)  评论(0)    收藏  举报