C++关键字大总结

原创 2015年07月09日 15:31:15
register:
    如果有一些变量使用频繁,则为存取变量的值少花一些时间,
可以将该局部变量的值放在CPU的寄存器中,需要时直接从寄存器
中取出参加运算,不必去内存中去存取。由于寄存器的存取速度
远远高于内存的存取速度,因此这样做可以提高执行效率。这种
变量叫做“寄存器变量”,用register做声明。
说明:  
     (1)只有局部自动变量和形式参数可以作为寄存器变量,其他
     如全局变量则不可以。
     (2)一个计算机系统中的寄存器数目是有限制的,不能定义任意
            多个寄存器变量。
     (3)局部静态变量不能定义为寄存器变量。
const:
     (1)定义的const常量,具有不可变性。
     (2)便于进行类型的检测,消除了一些不安全的隐患。
     (3)保护被修饰的东西,防止的意外的改变影响到程序的安全。
     (4)提高了代码的健壮性,语法逻辑性更加严谨。
     (5const类型的变量在程序运行时只有一份拷贝,节省空间。
     (6)编译器通常不为普通的const常量分配内存空间,而是将
      它们保存在符号表中,使它们成为了编译期的常量,没有了存储
      与读内存的操作,提高了效率。
static:
     (1)全局静态变量或者全局静态函数:
          保护该变量及该静态函数在其作用域内有效,不能在超出这个
          这个作用域的范围使用。
     (2)全局静态变量存储在全局数据区,为初始化的系统会给它默认
          初始值。局部静态变量也是存储在全局数据区,作用范围只在
          它所属的作用域内,但是生命周期却存在工程的结束。
     (3)静态成员变量只存在一份拷贝且属于该类而不属于任何成员变量,
          静态成员函数只能使用静态成员变量,因为其不属于任何一个对象,
          只属于这个类。
volatile:
          如果一个基本变量被volatile修饰,等于是告诉编译器不要优
          化该变量,意思就是每次取值都直接从内存中存取操作,这对
          每次取值都需要变量存储在内存的真实有严格要求的变量来说,
          就可以声明为volatile类型,这在多线程中使用的比较多。
typedef:
      (1)定义一种类型的别名,而不是简单的宏替换,可以用作同时声明指针
          型的多个对象。如:
          char *pa,pb//声明了一个指针变量和一个字符变量。
          typedef char* CHAR_PTR
          CHAR_PTR pa,pb//此处就声明了两个指针变量。2typedef struct Node
            {
            }Node;//在旧的C语言中用的比较多,为结构体重新起一个别名。3)用typedef来定义与平台无关的类型。
           比如定义一个VAL的浮点类型,在目标平台上可以表示高精度的范围。
           typdef double VAL;
           但是在另一个平台上不支持double类型,我们可以在这个平台上这样
           typedef float VAL;
           这样就可以跨平台的定义自己合适的类型,而不需要修改大量的代码。
      (4)为一个复杂的声明起一个简单或者容易标记的名字。
define:
      (1)对变量只在预处理阶段做原模原样的替换,不做任何的类型检测,主要是
            定义变量或者定义函数。
      (2)使用ifndef,define,endif来防止重复引用。
静态库:
            1.浪费空间,每个程序都有一份。
            2.如果有一个地方修改了则需要重新的编译加载。
            3.执行速度快,不需要动态加载。
    动态库:
            1.动态库只是导出一个动态表,在程序运行的时候他动态加载。
            2.多个程序共享
            3.运行时加载,可以很容易的修改,就是打补丁。
            4.运行的动态加载会花费一定的时间。
}
#include <iostream>
#include <math.h>
using namespace std;
//希尔排序。
void Shell(int a[],int n)
{
    //增量取值。
    //x=log10(n)此函数存在。
    //(log(a)(b))=lg(b)/lg(a)或ln(b)/ln(a) 。
    int m = n;//保存一份长度。
    int len = log10(n) / (log10(2))+3;
    int *b = new int[len];
    int k = 0;
    int temp;
    while (n > 1)
    {
        b[k++] = (n / 2 + 1);
        if (n / 2 == 1)break;
        n = (n / 2) + 1;
    }
    b[k++] = 1;
    for (int i = 0; i < k; ++i)
    {
        temp = b[i];
        for (int j = 0; j < m-temp; ++j)
        {
            if (a[j]>a[j + temp])
            {
                a[j] ^= a[j + temp];
                a[j + temp] ^= a[j];
                a[j] ^= a[j + temp];
            }
        }
    }
}
int main()
{
    int a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 4, 5, 6, 0, 1, 2, 3, 5534, 5, 542, 3, 4, 6, 7, 8, 6, 123 };
    //int a[] = { 5, 4, 3, 2, 1 };
    Shell(a, sizeof(a) / sizeof(int));
        for (int i = 0; i < sizeof(a) / sizeof(int); i++)
        {
            cout << a[i] << "  ";
        }
        cout << endl;

    return 0;
}

C++中virtual关键字的用法

关于virtual关键字的用法总结如下,有错误或者总结不到位的情况请能帮本人指出,非常感谢! Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Vir...
  • zgaoq
  • zgaoq
  • 2017年02月10日 10:54
  • 1844

Spring MVC @关键字总结

函数相关: @Transactional(rollbackFor = Exception.class, value = "transactionManager") @Override @Search...
  • newtelcom
  • newtelcom
  • 2015年08月28日 08:45
  • 1131

[C/C++]static关键字用法总结

Static关键字用法总结     static关键字是C, C++中都存在的关键字。static从字面理解,是“静态的“的 意思,与此相对应的,应该是“动态的“。 static的作用主要有以下3个:...
  • doc_sgl
  • doc_sgl
  • 2013年10月30日 22:31
  • 1145

C++中static关键字总结

  • 2014年09月24日 15:05
  • 120KB
  • 下载

C/C++关键字const作用总结

(1)在C语言中用const去修饰一个变量,表示这个变量是只读的,不可通过显式的调用a去修改a的值,并且此时a仍然是一个变 量,不能等同于常量(不可修改的变量); (2)要注意const在...
  • yx20130919
  • yx20130919
  • 2016年06月01日 09:15
  • 161

c++ 友援 friend 关键字总结

通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为public(共用的),然而这做带来的问题遍是任何外部函数都可以毫无约束的访问它操作它,c++利用frien...
  • boshuzhang
  • boshuzhang
  • 2017年12月29日 17:48
  • 17

C++中static关键字用法总结

C++中static关键字有两类用法:和C语言用法相同的static和C++面向对象程序中的static。前者是静态全局变量、局部变量和静态函数,后者是类中的静态变量和静态函数。一、和C语言用法相同的...
  • u010902721
  • u010902721
  • 2015年05月14日 15:39
  • 1557

C/C++中static,const,inline三种关键字详细总结

一、关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 stati...
  • u012300157
  • u012300157
  • 2015年07月05日 14:25
  • 433

C++ using关键字作用总结

C++ using关键字作用总结 1.在当前文件中引入命名空间 这是我们最熟悉的用法,例如:using namespace std; 2.在子类中使用 using 声明引入基类成...
  • u012861978
  • u012861978
  • 2015年12月21日 16:49
  • 162

[C/C++]static关键字用法总结

最近经历了一些笔试和面试,经常会被问到static关键字的作用,感觉虽然知道一些,但每次回答的都不够满意,今天在网上查了一下,总结总结,恩,以备后用!   static关键字是C, C++中都存在...
  • happyzhouxiaopei
  • happyzhouxiaopei
  • 2012年10月14日 22:44
  • 545
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++关键字大总结
举报原因:
原因补充:

(最多只允许输入30个字)