 |
ASCII码大全
|
|
| |
| ASCII码大全 ASCII Characters
Dec Hex Char Code
0 00 ? NUL
1 01 ? SOH
2 02 ? STX
3 03 ? ETX
4 04 ? EOT
5 05 ? ENQ
6 06 ? ACK
7 07 ? BEL
8 08 ? BS
9 09 ? HT
10 0A ? LF
11 0B ? VT
12 0C ? FF
13 0D ? CR
14 0E ? SO
15 0F ? SI
16 10 ? SLE
17 11 ? CS1
18 12 ? DC2
19 13 ? DC3
20 14 ? DC4
21 15 ? NAK
22 16 ? SYN
23 17 ? ETB
24 18 ? CAN
25 19 ? EM
26 1A ? SIB
27 1B ? ESC
28 1C ? FS
29 1D ? GS
30 1E RS ...
|
|
| 作者:不祥 jerry张贴于2004-03-10 21:13:49.0,共阅读7638次,回复1次 |
|
|
 |
C++源代码游戏编程--WinMain()函数集
|
|
| |
| C++源代码游戏编程--WinMain()函数集
C++源代码游戏编程--WinMain()函数交流
//******************************************************************
//函数:WinMain()
//功能:应用程序入口
//******************************************************************
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
hInst=hInstance;
//初始化主窗口
if (!InitWindow( hInstance, nCmdShow))
return FALSE;
//初始化DirectDraw环境
if (!InitDDraw())
{
MessageBox(hWndMain, "初始化DirectDraw过程中出错!", "Error", MB_OK);
FreeObjects();
D ...
|
|
| 作者:不祥 guifang张贴于2004-06-20 11:46:28.0,共阅读6708次,回复4次 |
|
|
 |
利用MSXML解析XML文本
|
|
| |
| 当前Web上流行的剧本语言是以HTML为主的语言结构,HTML是一种标记语言,而不是一种编程语言,主要的标记是针对显示,而不是针对文档内容本身结构的描述的。也就是说,机器本身是不能够解析它的内容的,所以就出现了XML语言。XML (eXtensible Markup Language)语言是SGML语言的子集,它保留了SGML主要的使用功能,同时大大缩减了SGML的复杂性。XML语言系统建立的目的就是使它不仅能够表示文档的内容,而且可以表示文档的结构,这样在同时能够被人类理解的同时,也能够被机器所理解。XML要求遵循一定的严格的标准。XML分析程序比HTML浏览器更加要挑剔语法和结构,XML要求正在创建的网页正确的使用语法和结构,而不是象HTML一样,通过浏览器推测文档中应该是什么东西来实现HTML的显示,XML使得分析程序不论在性能还是稳定性方面都更容易实现。XML文档每次的分析结果都是一致的,不象HTML,不同的浏览器可能对同一个HTML作出不同的分析和显示。同时因为分析程序不需要花时间重建不完整的文档,所以它们能比同类HTML能更有效地执行其任务。它们能全力以赴地根据已经包含在文档中的那个树结构建造出相应的树来,而不用在信息流中的混合结构的基础上进行显示。XML标准是对数据的处理应用,而不是只针对Web网页的。任何类型的应用都可以在分析程序的上面进行建造,浏览器只是XML的一 ...
|
|
| 作者:不祥 jerry张贴于2004-05-20 20:18:56.0,共阅读10477次,回复1次 |
|
|
 |
堆和栈的区别
|
|
| |
| 一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放
4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
二、例子程序
这是一个前辈写的,非常详细
//main.cpp
int a = 0; 全局初始化区
char *p1; 全局未初始化区
main()
{
int b; 栈
char s[] = "abc"; 栈
char *p2; 栈
char *p3 = "123456"; 123456\0在常量区,p3在栈上。
static int c =0; 全局(静态)初始化区
p1 = (char *)malloc(10);
p2 = ( ...
|
|
| 作者:不祥 kgj2008张贴于2005-04-05 23:38:12.0,共阅读4403次,回复1次 |
|
|
 |
有关引用类型知识点的总结
|
|
| |
| 2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。3. 将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在 ...
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1120次,回复0次 |
|
|
 |
#include<file.h> 与#include
|
|
| |
| 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。
本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1044次,回复0次 |
|
|
 |
C++中的空类,默认产生哪些类成员函数?
|
|
| |
| 答:class Empty{ public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* operator&() const; // 取址运算符 const};本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1702次,回复0次 |
|
|
 |
以下代码能够编译通过吗,为什么?
|
|
| |
| unsigned int const size1 = 2;char str1[ size1 ];unsigned int temp = 0;cin >> temp;unsigned int const size2 = temp;char str2[ size2 ];答:str2定义出错,size2非编译器期间常量,而数组定义要求长度必须为编译期常量本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1031次,回复0次 |
|
|
 |
以下代码有什么问题?
|
|
| |
| cout << (true?1:"1") << endl;答:三元表达式“?:”问号后面的两个操作数必须为同一类型。本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1004次,回复0次 |
|
|
 |
指针的概念
|
|
| |
| 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让 我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr; (4)int (*ptr)[3]; (5)int *(*ptr)[4]; 如果看不懂后几个例子的话,请参阅我前段时间贴出的文?lt;<如何理解c和c ++的复杂类型声明>>。 1。 指针的类型。 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的 类型: (1)int *ptr; //指针的类型是int * (2)char *ptr; //指针的类型是char * (3)int **ptr; //指针的类型是 int ** (4)int (*ptr)[3]; //指针的类型是 int(*)[3] (5)int *(*ptr)[4]; //指针的类型是 int *(*)[4] 怎么样?找出指针的类型的方法是不是很简单? 2。指针所指向的类型。 当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译 器将把那片内存区里的内容当做什么来看待。 从语法上看, ...
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1071次,回复0次 |
|
|
 |
以下代码有什么问题?
|
|
| |
| struct Test{Test( int ) {}Test() {}void fun() {}};void main( void ){Test a(1);a.fun();Test b();b.fun();}答:变量b定义出错。按默认构造函数定义对象,不需要加括号。本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读977次,回复0次 |
|
|
 |
以下代码中的两个sizeof用法有问题吗?
|
|
| |
| void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{for( size_t i=0; i<sizeof(str)/sizeof(str[0]); ++i )if( "a"<=str && str<="z" )str -= ("a"-"A" );}char str[] = "aBcDe";cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl;UpperCase( str );cout << str << endl;答:函数内的sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str是一个静态定义的数组,因此其大小为6,函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1120次,回复0次 |
|
|
 |
C语言的优势
|
|
| |
| C比其他语言变化少(越老越经典),容易学,工作又好找。以上是个人看法,因为我现在觉得:C才是王道!本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1218次,回复0次 |
|
|
 |
把十进制数(long型)分别以二进制和十六进制形式输出
|
|
| |
| 编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数char* test3(long num) {char* buffer = (char*)malloc(11);buffer[0] = '0';buffer[1] = 'x';buffer[10] = '\0';char* temp = buffer + 2;for (int i=0; i < 8; i++) {temp = (char)(num<<4*i>>28);temp = temp >= 0 ? temp : temp + 16;temp = temp < 10 ? temp + 48 : temp + 55;}return buffer;}本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1307次,回复0次 |
|
|
 |
编写字符串拷备函数
|
|
| |
| har *strcpy(char *strDest, const char *strSrc){ if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc) return strDest ; char *tempptr = strDest ; while( (*strDest++ = *strSrc++) != ‘\0’); return tempptr ;}本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读994次,回复0次 |
|
|
 |
以下三条输出语句分别输出什么?
|
|
| |
| char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?cout << boolalpha << ( str5==str6 ) << endl; // 输出什么? 答:分别输出false,false,true。str1和str2都是字符数组,每个都有其自己的存储区,它们的值则是各存储区首地址,不等;str3和str4同上,只是按const语义,它们所指向的数据区不能修改。str5和str6并非数组而是字符指针,并不分配存储区,其后的“abc”以常量形式存于静态数据区,而它们自己仅是指向该区首地址的指针,相等。本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1178次,回复0次 |
|
|
 |
Josephu 问题
|
|
| |
| 为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。数组实现:#i nclude <stdio.h>#i nclude <malloc.h>int Josephu(int n, int m){ int flag, i, j = 0; int *arr = (int *)malloc(n * sizeof(int)); for (i = 0; i < n; ++i) arr = 1; for (i = 1; i < n; ++i) { flag = 0; while (flag < m) { if (j == n) j = 0; if (arr[j]) ++flag; ++j; } arr[j - 1] = 0; printf("第%4d个出局的人是:%4d号\n", i, j); } free(arr); return j;}int main(){ int n, m; scanf("%d%d", &n, &m); printf("最后胜利的是%d号!\n", Josephu(n, m)); sy ...
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1082次,回复0次 |
|
|
 |
判断一个字符串是不是回文
|
|
| |
| int IsReverseStr(char *aStr){ int i,j; int found=1; if(aStr==NULL) return -1; j=strlen(aStr); for(i=0;i<j/2;i++) if(*(aStr+i)!=*(aStr+j-i-1)) { found=0; break; } return found;}
[ 本帖最后由 oases2008 于 2007-2-3 19:34 编辑 ]本文转载自IT网it求职笔试真题库网。
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1135次,回复0次 |
|
|
 |
STL使用入门( Using STL)
|
|
| |
| STL使用入门( Using STL) [*]0 前面的话(Winter) [*]1 介绍 [*]2 规则 [*]Rule 1: [*]Rule 2 [*]Rule 3: [*]Rule 4: [*]Rule 5: [*]3 结论 0 前面的话(Winter) C++已经在中国相当普及,但C++ STL却使用的人不多。许多人有一定成见,认为STL降低了C++的效率。特别是那些自诩为技术专家的人,他们一直使用C语言,对于新事物总是先用批判的眼光对待......先不说这些,我这几天看见http://stl.winterxy.com网站上的这篇小文,发现写得简明扼要,通俗易懂。翻译出来,希望对STL的普及有一定帮助。 1 介绍 我最开始结束C++编程是从DOS下的Borland C++开始的。那时他们在最新版本3.1中就包含了一套模板库用来做collection.那真是个好东东。当我开始使用Visual C++ 2.2的时候,我甚至试图去把Borland公司的collection模板库嵌入到Visual C++中去,但是没有成功。唯一可行的解决方案是切换到微软(Microsoft)的collection上,它是MFC的一部分分。但总是有些问题,其原因如下: [*]一旦实现部分已经代码写完,很难从一种容器(container)类型切换到另外一种容器。 [*]不同容器的迭代器(Iterato ...
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1453次,回复0次 |
|
|
 |
const的思考
|
|
| |
| 1、什么是const?常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用?(1)可以定义const常量,具有不可变性。例如:const int Max=100;int Array[Max]; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如:void f(const int i) { .........}编译器就会知道i是一个常量,不允许修改;(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可!(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。还是上面的例子,如果在函数体内修改了i,编译器就会报错;例如: void f(const int i) { i=10;//error! }(5) 为函数重载提供了一个参考。class A{......void f(int i) {......} //一个函数void f(int i) const {......} //上一个函数的重载.... ...
|
|
| 作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1088次,回复0次 |
|
|