C++keyword大总结

时间:2021-11-21 00:28:55
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&num;&plus;无unsafe的非托管大数组&lpar;large unmanaged array in c&num; without &&num;39&semi;unsafe&&num;39&semi; keyword&rpar;

    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&sol;8)

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

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

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

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

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

  9. C语言面试题大汇总

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

随机推荐

  1. C语言文法

    C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明   → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...

  2. 《CLR&period;via&period;C&num;第三版》第二部分第13章节 接口 读书笔记&lpar;七&rpar;

    这章的书写感觉很普通,是些基础的认知知识. 其中一点的重要认知,泛型接口的好处(其实也是使用泛型的好处之一):编译时类型安全&处理值类型时减少装箱. 再说点书上没有的.本来这些知识我打算另外分 ...

  3. https&colon;&sol;&sol;github&period;com&sol;akullpp&sol;awesome-java

    java stack https://github.com/akullpp/awesome-java

  4. J2EE 第二阶段项目之编写代码&lpar;三&rpar;

    我的任务就是项目统计. 1 效益统计 1 教育效益统计表 (教育效益统计表,增,改,查看,查) 2 农牧林效益统计表 (农牧林效益统计表,增,改,查看,查) 3 乡村效益统计表    (乡村效益统计表 ...

  5. iOS人机界面指南(翻译)

    本文源自于苹果开发者网站的文章iOS Human Interface Guidelines,内容比较多,此处仅仅是部分笔记.

  6. 简单的单页c&num;生成静态页源码

    protected void BtGroup_ServerClick(object sender, EventArgs e)        {            //产业群首页           ...

  7. 权威指南之脚本化jquery

    jqury函数 jquery()($())有4种不同的调用方式 第一种是最常用的调用方式是传递css选择器(字符串)给$()方法.当通过这种方式调用时,$()方法会返回当前文档中匹配该选择器的元素集. ...

  8. IQueryable 和 IEnumerable

    IQueryable 和 IEnumerable 其实,对于上面的即有过虑又有排序的条件查询Linq语句,EF是读取数据库中整个Books表中的数据到内存,还是根据Linq查询语句智能的生成SQL再执 ...

  9. 实验十一 团队项目设计完善&amp&semi;编码测试

    任务一: 根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明,将完善后内容以<XX团队项目软件设计方案>为名发布在团队博客中,博文中要突出对完善内容的陈述说明,修改部 ...

  10. web中ios移动端软键盘收起后,页面内容留白不下滑

    微信里面打开web页面,在ios软键盘收起时,页面键盘位置的内容留白,如下图 这个问题纠结了很久,然后请教了老大(威哥),看到页面老大给出的方案就是代码改变滚动条的位置. 这里就监听键盘收起的事件,来 ...