摘要: 函数名与函数指针一 通常的函数调用 一个通常的函数调用的例子:#include <iostream>using std::cout;using std::endl;void MyFun(int x); //此处也可以声明为:void Myfun(int); int main(){ MyFun(10); //这里是调用MyFun(int x);函数 system("pause"); return 0;}void MyFun(int x) { cout << "x: " << x << endl;} 这个MyF 阅读全文
posted @ 2012-05-29 18:22 waynewuzhenbo 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。魔幻数组名请看程序(本文程序在WIN32平台下编译):#include <iostream>using namespace std;int main(){ char str[10]; char* pStr = str; cout << "sizeof(str): \t" << sizeof(str) << endl; cout << "sizeof(pStr): \t" 阅读全文
posted @ 2012-05-29 12:47 waynewuzhenbo 阅读(5594) 评论(1) 推荐(3) 编辑
摘要: 关于C++语言中return的一些总结 return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值。 说到return,有必要提及主函数的定义,对了解主函数中返回值的理解有很大的帮助。很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... */ } is not and never h... 阅读全文
posted @ 2012-05-29 00:20 waynewuzhenbo 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 1.getline()有三个参数,第一个是缓冲区,第二个是接收的最大字符数,第三个为结束字符,第三个可以省略,默认的为换行符('\n')。2.get()可以无参数;也可以有参数,有三个参数,第一个是缓冲区,第二个是接收的最大字符数,第三个为结束字符,第三个可以省略,默认的为换行符('\n')。他们参数的不同地方是:get()遇到结束字符,就把给字符留在缓冲区中,并停止读入字符;getline()则会丢弃结束字符。 阅读全文
posted @ 2012-05-24 18:01 waynewuzhenbo 阅读(245) 评论(0) 推荐(0) 编辑
摘要: //虚析构函数#include <iostream>using std::cout;using std::endl;class Base{public: Base() { cout << "Base constructed!" << endl; //基类构造函数 } ~Base() { cout << "Base destructed" << endl; //基类析构函数 } };class Deliver1:public B... 阅读全文
posted @ 2012-05-21 19:22 waynewuzhenbo 阅读(247) 评论(0) 推荐(0) 编辑
摘要: int *p = new int(5); 这句是从堆上分配一个int型变量所占的字节内存,这个内存单元存放的整数值为5,然后让一个整形的指针变量p指向它的地址。释放方式:delete p;int *p = new int[5]; 这句相当于从堆上分配一个含有5个元素的整形数组所占的字节内存,然后让一个整形的指针变量p指向它的首址。释放方式:delete []p;(注意这个[]不能掉了,如果掉了就会只释放P[0]所占的空间,p[1]到p[4]不会被释放,产生内存泄露。)来源:http://topic.csdn.net/u/20090627/18/c81ba42d-57ee-4ef3-adc3-4 阅读全文
posted @ 2012-05-07 23:12 waynewuzhenbo 阅读(2961) 评论(0) 推荐(0) 编辑
摘要: 分析一下三个声明: 1: Cat FamilyOne[500]; FamilyOne 是一个500个CAT对象组成的数组; 2: CAt * FamilyTwo[500]; FamilyTwo是一个500个指向的CAT的指针组成的数组(指针数组); 3: CAT * FamilyThree = new CAT[500]; FamilyThree是一个指针指向由500个对象组成的数组。 字符串数组的“蜕变”:1. char name[10] = {'C', 'h', 'i', 'n', 'a','\0' 阅读全文
posted @ 2012-05-02 19:54 waynewuzhenbo 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 指针是一个特殊的变量,它里面存储的数值被解释成为内存的一个地址。要理解一个指针需要弄清楚四方面的内容:1.指针的类型 指针的例子:(1) int* ptr;2.指针所指向的类型 (2) char* ptr;3.指针的值或者叫指针所知想得内存区 (3) int** ptr;4.指针本身所占据的内存区 (4) int (*ptr)[3]; (5) int* (*ptr)[4];1.指针的类型... 阅读全文
posted @ 2012-05-02 19:50 waynewuzhenbo 阅读(233) 评论(0) 推荐(0) 编辑
摘要: char greeting[] = "Hello";char* p = greeting; //non-const pointer, non-const dataconst char* p = greeting; //non-const pointer, const datachar* const p = greeting; //const pointer, non-const dataconst char* const p = greeting; //const pointer, const data//const 虽然... 阅读全文
posted @ 2012-04-30 20:39 waynewuzhenbo 阅读(163) 评论(0) 推荐(0) 编辑
摘要: char greeting[] = "Hello";char* p = greeting; //non-const pointer, non-const dataconst char* p = greeting; //non-const pointer, const datachar* const p = greeting; //const pointer, non-const dataconst char* const p = greeting; //const pointer, const data//const 虽然... 阅读全文
posted @ 2012-04-30 17:15 waynewuzhenbo 阅读(261) 评论(0) 推荐(0) 编辑