register:
假设有一些变量使用频繁,则为存取变量的值少花一些时间,
能够将该局部变量的值放在CPU的寄存器中,须要时直接从寄存器
中取出參加运算,不必去内存中去存取。 由于寄存器的存取速度
远远高于内存的存取速度,因此这样做能够提高执行效率。这样的
变量叫做“寄存器变量”,用register做声明。 说明:
(1)仅仅有局部自己主动变量和形式參数能够作为寄存器变量,其它
如全局变量则不能够。
(2)一个计算机系统中的寄存器数目是有限制的,不能定义随意
多个寄存器变量。 (3)局部静态变量不能定义为寄存器变量。
const:
(1)定义的const常量。具有不可变性。
(2)便于进行类型的检測,消除了一些不安全的隐患。
(3)保护被修饰的东西,防止的意外的改变影响到程序的安全。 (4)提高了代码的健壮性。语法逻辑性更加严谨。 (5)const类型的变量在程序执行时仅仅有一份拷贝,节省空间。 (6)编译器通常不为普通的const常量分配内存空间,而是将
它们保存在符号表中,使它们成为了编译期的常量。没有了存储
与读内存的操作,提高了效率。 static:
(1)全局静态变量或者全局静态函数:
保护该变量及该静态函数在其作用域内有效,不能在超出这个
这个作用域的范围使用。
(2)全局静态变量存储在全局数据区,为初始化的系统会给它默认
初始值。局部静态变量也是存储在全局数据区,作用范围仅仅在
它所属的作用域内,可是生命周期却存在project的结束。
(3)静态成员变量仅仅存在一份拷贝且属于该类而不属于不论什么成员变量,
静态成员函数仅仅能使用静态成员变量,由于其不属于不论什么一个对象,
仅仅属于这个类。 volatile:
假设一个基本变量被volatile修饰,等于是告诉编译器不要优
化该变量,意思就是每次取值都直接从内存中存取操作。这对
每次取值都须要变量存储在内存的真实有严格要求的变量来说,
就能够声明为volatile类型,这在多线程中使用的比較多。 typedef:
(1)定义一种类型的别名。而不是简单的宏替换,能够用作同一时候声明指针
型的多个对象。如:
char *pa,pb//声明了一个指针变量和一个字符变量。 typedef char* CHAR_PTR
CHAR_PTR pa,pb//此处就声明了两个指针变量。 (2)typedef struct Node
{
}Node;//在旧的C语言中用的比較多。为结构体又一次起一个别名。 (3)用typedef来定义与平台无关的类型。
比方定义一个VAL的浮点类型,在目标平台上能够表示高精度的范围。
typdef double VAL;
可是在还有一个平台上不支持double类型,我们能够在这个平台上这样
typedef float VAL;
这样就能够跨平台的定义自己合适的类型,而不须要改动大量的代码。
(4)为一个复杂的声明起一个简单或者easy标记的名字。
define:
(1)对变量仅仅在预处理阶段做原模原样的替换,不做不论什么的类型检測,主要是
定义变量或者定义函数。
(2)使用ifndef,define,endif来防止反复引用。
静态库:
1.浪费空间。每一个程序都有一份。 2.假设有一个地方改动了则须要又一次的编译载入。 3.执行速度快,不须要动态载入。
动态库:
1.动态库仅仅是导出一个动态表。在程序执行的时候他动态载入。
2.多个程序共享
3.执行时载入。能够非常easy的改动。就是打补丁。 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++keyword大总结的更多相关文章

  1. 《JAVA语言程序设计》上课笔记

    教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一.        问几个问题 1.             你们到这里来干什么 ...

  2. C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword)

    C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword) +BIT祝威+悄悄在此留下版了个权的信息说: C#申请一 ...

  3. 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

    1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...

  4. Lucene搜索方式大合集

    package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; imp ...

  5. Robot Framework--06 用户关键字User Keyword

    转自:http://blog.csdn.net/tulituqi/article/details/7906130 在我们做自动化案例的时候,用的最多的主要是用户关键字.说到关键字,大体上可以分为测试库 ...

  6. 《黑客大曝光》实践部分——sql注入(7/8)

    SQL注入实践 由于<黑客大曝光>中涉及到形形色色的攻击方式,从软件到硬件,甚至还有物理锁的开锁教程,当中的很多教程很有趣,但是我没有相关的环境,实践起来不好操作,比如说,查点扫描我还可以 ...

  7. 十大谷歌Google搜索技巧分享

    前言:多数人在使用Google搜索的过程是非常低效和无谓的,如果你只是输入几个关键词,然后按搜索按钮,你将是那些无法得到Google全部信息的用户,在这篇文章中,Google搜索专家迈克尔.米勒将向您 ...

  8. 技术分享:如何用Solr搭建大数据查询平台

    0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才 ...

  9. C语言面试题大汇总

    static有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么差别?1) 引用必须被初始化,指针不必.2) 引用初始化以后不能被改变,指针能够改变所指的对象. ...

随机推荐

  1. selector函数指针回调机制

    selector可以叫做选择器,其实指的就是对象的方法,也可以理解为C语言里面的函数指针,在面向对象里面的对应概念. [self performSelector:@selector(Hidden) w ...

  2. markdown 测试代码

    这是 H1 这是 H2 这是 H3 这是 H4 这是 H5 这是 H6 A First Level Header A Second Level Header Now is the time for a ...

  3. python 函数操作

    四.函数 定义: #!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qi ...

  4. [实战]MVC5+EF6+MySql企业网盘实战(22)——图片列表

    写在前面 实现逻辑是:单击图片节点,加载所有的当前用户之前上传的图片,分页,按时间倒序加载. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MyS ...

  5. python通过帐号和密码访问mysql

    数据库:test1  数据表:a1 用input输入姓名和密码,对了的话显示信息.不对的话显示error import pymysql import hashlib conn = pymysql.co ...

  6. Void运算符 与 undefined类型

    void 运算符 对给定的表达式进行求值,然后返回 undefined. 何为求值,就是执行之后的表达式. 我们最常见的就是 <a href="javascript: void(0)& ...

  7. Python的环境搭建——万丈高楼平地起

    Python的环境搭建,远程连接,端口映射,虚拟机 写在正文之前 python语言的开发环境还是相对比较简单的,但是也是有很多需要注意的地方,对于初次接触python或者以前很少用到虚拟环境的朋友来说 ...

  8. 洛谷——P2393 yyy loves Maths II

    P2393 yyy loves Maths II 题目背景 上次蒟蒻redbag可把yyy气坏了,yyy说他只是小学生,蒟蒻redbag这次不坑他了. 题目描述 redbag给了yyy很多个数,要yy ...

  9. javascript的优缺点和内置对象

    1)优点:简单易用,与Java有类似的语法,可以使用任何文本编辑工具编写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格的变量声明,而且内置大量现成对象,编写少量程序可以完成目标: ...

  10. 行转列之后的datagrid的保存

    行专列之后,查询的存储过程为 1 USE [APS_Future_FT] 2 GO 3 /****** Object: StoredProcedure [dbo].[P_APS_H_InternalS ...