摘要:1、数据库基本操作创建数据库: create database 数据库名;//创立了数据库注意,在默认的情况下,windows中数据库名、表名的大小写是不敏感的,而在linux系统中对数据库名和表名的大小写是敏感的,为论文便于平台之间的移植,建议采用小写来定义数据库名和表名。显示数据库:show databases; //显示所有的数据库使用数据库:use 数据库名;//选择数据库删除数据库:drop databases 数据库名;创建数据表:create [temp] table [if not exits] 数据表名 [(create_definition,…)][table_option
阅读全文
摘要:在mysql中的数据用各种不同的技术存储在文件或者内存中。这些技术都是用了不同的存储机制、索引技巧、锁定水平,最终给用户提供不同的选择。这些不同的技术以及配套的相关功能在mysql中被称为存储引擎(或者表类型)。 在mysql中配置有许多不同的存储引擎,用户可以灵活的选择适用于服务器、数据库和表格的存储引擎,以便获得最大的性能和最大的灵活性。这也是mysql不同于其他大型数据库以及mysql为何如此受欢迎的主要因素。一些大型的数据库仅采用了一种存储引擎,以一种尺码满足所有需求也就意味着会牺牲一些性能。 在命令行中可以通过命令显示其支持的存储引擎: show engines; 在m...
阅读全文
摘要:目前世界上建网站最流行的就是LAMP组合--Linux、Apache、MySQL、PHP。主要因为这四部分都是开源免费的产品,而且其稳定性也很强。 Mysql是一款优秀的开源软件,它是由瑞士的MySQL AB公司开发的(1995年),是世界上最流行的数据库之一。据统计,世界上一流的互联网公司中,排名前20的有80%是MySQL数据库的忠实用户。例如Google、Youtube、Baidu、Ebuy... Mysql在2008年1月16日被SUN公司收购,而SUN在2009年时被Orcale公司收购。 Mysql是一个多用户、多线程的sql数据库服务器。他的底层是使用C/C++编写的...
阅读全文
摘要:1、 内存分配方式(1)从静态存储区域分配。例如使用static、全局变量。静态存储区的数据在程序编译的时候就已经分配好了,在程序运行期间一直存在,只有在程序推出之后才会释放。(2)在栈上分配。函数内部的局部变量都是在栈上分配的,在函数阶数时存储空间便被释放;(3)在堆上分配。程序员根据自己的需要申请和释放内存(new/delete malloc/free)2、在内存的分配过程中经常会出现一些错误。(1)内存未分配成功却使用了他。例如内存中没有足够大的剩余空间此时内存分配(new/malloc)失败之后会返回NULL,可以用assert(p!=NULL)或者if语句进行检查。(2)内存分配成功
阅读全文
摘要:一个由C/C++编译程序占用内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数参数值,局部变量值等。其操作方式类似于数据结构中栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量存储是放在一块,初始化全局变量和静态变量在一块区域, 未初始化全局变量和未初始化静态变量在相邻另一块区域。 - 程序结束后由系统释放。-->分别是data区,bbs区4、文字常量区 —常量字符串就是放在这里。 程序结束后由系
阅读全文
摘要:最近两天在复习一些c++的知识,中间发现了许多以前没有注意过的问题。关于句柄以前总是将其理解为指针,其实不然,他们之间有着明显的区别。 首先,指针指向系统中物理内存的地址,而句柄是windows在内存中维护的一个对象内存物理地址列表的整数索引,句柄是一种指向指针的指针。 在windows系统中的内存管理一般会将当前处于空闲状态的对象的内存释放掉,当需要访问的时候再重新提交分配物理内存,从而导致对象的物理地址是变化的,这样就不允许系统直接通过指针来访问(物理地址不断变化)的对象。 句柄是一种指向指针的指针。由于windows是一种以虚拟内存为基础的操作系统,其内存管理器经常会在内存中来...
阅读全文
摘要:虚函数表对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该调用的函数。这里我们着重看一下这张虚函数表。在C++的标准规格说明书中说到,编译器必需要保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证正确取到虚函数的
阅读全文
摘要:volatile在英文中的解释是“不稳定的”,也就是说用该关键字修饰的变量的值随时可能被改变。用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。volatile的本意是“易变的”,不过翻译成“直接存取原始内存地址”更为合适。“易变”是因为外在因素引起的,象多线程,中断等,并不是因为用volatile修饰了的变量就是“易变”了,假如没有外因,即使用volatile定义,它也不会变化。 计算机中进行计算时,通常会将数据拷贝到寄存器中,因为CPU对寄存器的操作远快于对内存的操作。 在变量没有使用volatile修饰时,如果在计算过程中没有对该变量所在的...
阅读全文
摘要:静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将只在执行线程第一次到达它的定义使初始化。用法2:局部静态对象 对于局部静态对象,构造函数是在控制线程第一次通过该对象的定义时调用。在程序结束时,局部静态对象的析构函数将按照他们被构造的相反顺序逐一调用,没有规定确切时间。用...
阅读全文
摘要:一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);类型
阅读全文
摘要:1、const_cast<type>(content)主要用于修改数据类型的const和volatile属性,#include <string>#include <iostream>using namespace std;class B{public:int m_iNum;B() {m_iNum=9;}};void foo(){const B b1;//b1.m_iNum = 100; //compile errorB b2 = const_cast<B&>(b1);//const_cast中的type必须为指针或者引用,将常量对象转换成
阅读全文
摘要:http://blog.vckbase.com/arong/archive/2009/12/30/40598.html1. 原理分析经常有些新C++程序员问:C++的类的成员个数是不是有限制,为什么我加一个变量后程序就死了?或者说:是不是成员变量的顺序很重要,为什么我两个成员变量顺序换一换程序就不行了?凡此种种之怪现象,往往都是内存访问越界所致。何谓内存访问越界,简单的说,你向系统申请了一块内存,在使用这块内存的时候,超出了你申请的范围。例如,你明明申请的是100字节的空间,但是你由于某种原因写入了120字节,这就是内存访问越界。内存访问越界的后果是:你的写入破坏了本不属于你的空间。下面是一个
阅读全文
摘要:在C++中提供了类型向上转换和向下转换的方法。关于向上转换和向下转换区别如下:1、从派生类转换到基类,在继承图中来说是向上的,所以一般称为向上类型转换。向上类型转换总是安全的,因为从更专门的类型转换到更一般的类型。可能出现的唯一的事情就是失去成员函数。向上转换可以通过虚函数来实现。下面的程序就是一个向上转换的例子:class base{base(){}virtual ~base(){}};class derived:public base{derived(){}virtual ~derived(){}};void main(){base *Base=new derived;//这里就是将der
阅读全文
摘要:#include "stdafx.h"#include <iostream.h>struct A{int a;unsigned __int64 b;short c;}Test_a;struct B{int a;short c;unsigned __int64 b;}Test_b;struct C{short a;short b;short c;}Test_c;struct D{unsigned __int64 a;short b;int c;int d;unsigned __int64 e;}Test_d;int main(){cout<<sizeo
阅读全文
摘要:C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、Const作用如下表所示:No.作用说明参考代码1可以定义const常量 const int Max = 100;2便于进行类型检查const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误void f(const int i
阅读全文
摘要:Xmlhttp是一种浏览器对象, 可用于模拟http的GET和POST请求。配合JavaScript可以实现页面数据在无刷新下的定时数据更新,如果应用在聊天室、文字直播上可以取得较好的视觉效果。xmlhttp并不是IE特有的东西,虽然目前还不是W3C的标准,不过IE, Netscape/Mozilla, 和Safari都支持。在IE中我们使用new ActiveXObject('MSXML2.XMLHTTP')或者new ActiveXObject("Microsoft.XMLHTTP")来获得的xmlhttp对象实例,使用前者还是后者和客户端机器安装的MS
阅读全文
摘要:什么是PHP开发框架 有太多的原因使得PHP成为世界上最受欢迎的脚本语言——高度灵活、简单易用——不过写PHP(或者任何这种语言)代码时,人们常常陷入单调重复而令人生厌的体力活动的窘境。而这正是PHP开发框架大显身手的地方。 通过提供一个开发Web程序的基本架构,PHP开发框架把PHPWeb程序开发摆到了流水线上。换句话说,PHP开发框架有助于促进快速软件开发(RAD),这节约了你的时间,有助于创建更为稳定的程序,并减少开发者的重复编写代码的劳动。这些框架还通过确保正确的数据库操作以及只在表现层编程的方式帮助初学者创建稳定的程序。PHP开发框架使得你可以花更多的时间去创造真正的Web程序,..
阅读全文
摘要:在php中支持很多的数据库,但是结合最好的数据库时mysql,他和linux、apache、php共同构成了LAMP系统。php对mysql的操作步骤为:连接mysql数据库-->选择数据库-->执行SQL语句-->关闭结果集-->关闭mysql数据库。1、连接数据库:mysql_connect('hostname','username','password');lostname:主机名,默认是端口号是3306username:数据库服务器的用户名称password:用户名对应的密码连接成功则返回一个连接标示符,否则返回f
阅读全文
摘要:很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作。遇上00x10,终端就换行,遇上0x07, 终端
阅读全文
摘要:网站的结构是指网站中页面之间的层次关系,可分为逻辑结构和物理结构,他直接影响搜索引擎对网站页面收录的数量和页面的权重。1、搜索引擎首先会抓取网站中权重最大的页面(一般是首页),然后跟踪其中的连接来抓取网站中其他的重要页面。所以为了提高网页被搜索的概率,最好剪短该页面与重要页面之间的链接路径。2、逻辑结构(1)连接深度:从原页面到达目标页面所经过的路径数,一般与重要页面之间的连接深度越小就越容易被收录。(2)URL与连接深度的关系:在URL中不能反映其连接深度,例如http://www.ebusinessreview.cn/column/表示的是该页面在网中的存储的位置。(3)逻辑结构:常见的逻
阅读全文