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. web2.0 HW3 相关阅读材料

    W3C官网的材料简直看花眼……除了挂出的文档,www-style@w3.org的一堆邮件也藏着很多宝,但是看下来又眼花了……(好在宝们基本都被W3C吸收了=.=) 主要来自W3C的官网w3.org的一 ...

  2. MySQL5.7 centos7.2 yum 安装

    1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/  # 下载mysql源安装包 shell> wge ...

  3. Web前端开发最佳实践(1):前端开发概述

    引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...

  4. [实战]MVC5+EF6+MySql企业网盘实战(26)——音乐列表

    写在前面 本篇文章将实现,音乐列表,同样和其他列表的不同之处,在于查询条件的不同. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网 ...

  5. spring_150807_hibernate_transaction_annotation

    实体类: package com.spring.model; import javax.persistence.Entity; import javax.persistence.Id; import ...

  6. Centos7中一次性安装开发者工具

    这里使用组安装包,一次性安装所有开发者工具. 1.查看有那些组安装包可用. yum grouplist | more 2.搜索一下有哪些和development有关. yum grouplist | ...

  7. 【C#】日期格式转换

    C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了今天DateTime.Now.Date.ToShortDateString();昨天,就是今天的日 ...

  8. 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 F - 打铁的箱子

    题目描述 作为彩虹岛上最擅长打铁的人,

  9. hdu 2433 Travel(还不会)

    Problem Description       One day, Tom traveled to a country named BGM. BGM is a small country, but ...

  10. [BZOJ2594][WC2006]水管局长加强版(LCT+Kruskal)

    2594: [Wc2006]水管局长数据加强版 Time Limit: 25 Sec  Memory Limit: 128 MBSubmit: 4452  Solved: 1385[Submit][S ...