摘要:
什么是回溯法 最笨的搜索法是穷举搜索,在穷举搜索的基础上,提出了一些启发式的搜索方法。 回溯法的本质就是搜索,通过剪枝策略,提高搜索的效率。回溯法也称为试探法,在搜索过程中向前试探,走不通时向后回溯。 适用回溯法求解的问题 可用回溯法求解的问题P,通常能表达为: 对于已知的由n元组(x1,x2,.. 阅读全文
摘要:
1.指针数据类型 变量的值存储于计算机的内存中,每个变量占据一个特定的位置,每个内存位置都由地址唯一确定并引用。指针只是 地址的另一个名字罢了。指针变量就是一个其值为另一个内存地址的变量。 1.1 指针常量 指针常量与非指针常量在本质上是不同的,因为编译器负责把变量赋值给计算机内存中的位置,程序员事 阅读全文
摘要:
1. C语言中的数组 C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来。对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为0的元素的指针。其他有关数组的操作,哪怕咋看上去是以数组下标进行运算的,实际上都是通过指针进行。在C语音中索引运算是以指针算术的形 阅读全文
摘要:
1.显示调用首地址为0的例程:(*(void(*)())0)() 显示调用首地址为0的例程的表达式为:(*(void(*)())0)() 分两步分析: 因为fp是一个函数指针,那么*fp就是该指针指向的函数,所以(*fp)()就是调用该函数的方式。ANSI C标准允许程序员将上式简写为fp()。() 阅读全文
摘要:
1.移动语义 c++11新引入了右值引用和移动语义两个概念。 1.1 右值引用 C++(包括C)中所有的表达式和变量要么是左值,要么是右值。通俗的左值的定义就是非临时对象,可以在多条语句中使用的对象。右值是指临时的对象,它们只在当前的语句有效。在C++11之前,右值是不能被引用的。如int &a = 阅读全文