摘要: 单引号中的数值表示一个整型值,该值等于次字符在机器字符集中对应的数值,我们称之为字符常量。但是,它只不过是小的整型数的另一种写法而已。例如,‘A’是一个字符常量;在ASCII字符集中其值为65(即字符A的内部表示值为65)。当然,用‘A’要比用65好,因为‘A’的意义更清晰,且与特定的字符集无关。附:ASCII码表。 阅读全文
posted @ 2012-10-29 21:43 waynewuzhenbo 阅读(1268) 评论(0) 推荐(0) 编辑
摘要: 标准函数哭提供的一次读一个字符的函数,最简单的是:getchar。在没有输入时,getchar函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个值称为EOF(end of file,文件结束)。 阅读全文
posted @ 2012-10-29 21:02 waynewuzhenbo 阅读(252) 评论(0) 推荐(0) 编辑
摘要: stdio是指:“stundert buffered input&output”;意思是受带缓冲的标准输入输出。 阅读全文
posted @ 2012-10-29 20:36 waynewuzhenbo 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{s=(char *) malloc(100);}void main(){char *p=NULL;myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?if(p) free(p);}程序2:void myMalloc(char **s){*s=(char *) malloc(100);}void main(){char *p=NULL;myMalloc(&p); //这里的p可以得到正确的值了if(p) free(p);}程序3:#include <iostream& 阅读全文
posted @ 2012-06-13 13:10 waynewuzhenbo 阅读(4466) 评论(1) 推荐(0) 编辑
摘要: 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。3. 保护继承(protected)保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。下面列出三种不同的继 阅读全文
posted @ 2012-06-06 16:24 waynewuzhenbo 阅读(309) 评论(0) 推荐(1) 编辑
摘要: 先要理解class的意思。class应该理解为一种类型,象 int,char一样,是用户自定义的类型。虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解this 的类型应该是myclass *,而对其的解引用*this就应该是一个myclass类型的变量。通常在cl 阅读全文
posted @ 2012-06-06 12:02 waynewuzhenbo 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 在IBM开发社区上发现一篇叫'Data alignment: Straighten up and fly right'的文章,下面的很多内容都是来自那篇文章的。 内存可以看成一个byte数组,我们通过编程语言提供的工具对这个'大数组'中的每个元素进行读写,比如在C中我们可以用指针一次读写一个或者更多 个字节,这是我们一般程序员眼中的内存样子。但是从机器角度更具体的说从CPU角度看呢,CPU发出的指令是一个字节一个字节读写内存吗?答案是'否'。 CPU是按照'块(chunk)'来读写内存的,块的大小可以是2bytes, 4bytes 阅读全文
posted @ 2012-06-05 23:41 waynewuzhenbo 阅读(1166) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>//#include <stdio.h>using namespace std;int Vac = 3; int main(){ int i = 1, j = 2; int k = i+++j; cout << k << endl; //程序的输出结果是多少? system("pause"); return 0;} 根据C++运算符的优先级,表达式:i+++j;中,两个加号最先结合,即:++。其结合性是:从左到右(left to right),所以,表达式可以改写成:(i++)+j;。C+ 阅读全文
posted @ 2012-06-04 16:05 waynewuzhenbo 阅读(735) 评论(2) 推荐(0) 编辑
摘要: lvalue中的l指的是location,表示可以寻址。The "l" in value can be thought of as location.rvalue中的r指的是read,表示可读。The "r" in value can be thought of as "read" value.c++和++c的区别:c++即是返回a的值,然后变量a加1,返回需要产生一个临时变量类似于:{ int temp = c; c = c + 1; return temp; //返回右值 }++c则为:{ c = c + 1; return &a 阅读全文
posted @ 2012-06-04 10:56 waynewuzhenbo 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子:#include <iostream>using namespace std;class CExample{public: CExample(int b){ a = b;} CExample(const CExample& C){ a = C.a; } void Show(){ cout << a << endl; }private: int a;};i... 阅读全文
posted @ 2012-05-31 18:49 waynewuzhenbo 阅读(265) 评论(0) 推荐(0) 编辑