C++
melinda1983
这个作者很懒,什么都没留下…
展开
-
编写strcpy函数
char *strcpy(char *strDest, const char *strSrc){assert((strDest != NULL) && (strSrc != NULL));char *address = strDest;while ((*strDest++ = *strSrc++) != /0)NULL;return address;}之所以返回原创 2008-05-26 16:32:00 · 261 阅读 · 0 评论 -
float类型的值与零值比较
const float EPSINON = 0.00001if ((x>=-EPSINON)&&(x不可将浮点变量用"=="或"!="与数字比较,应该设法化为">="或"<="此类形式。原创 2008-05-26 15:38:00 · 796 阅读 · 0 评论 -
内存
void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的str一直都是原创 2008-05-26 16:23:00 · 272 阅读 · 0 评论 -
指针数组
1。指针数组:如果有一个数组,其元素均为指针类型数据,该数组称为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址。一维指针数组的定义形式 :类型名*数组名[数组长度]。数组指针:类型名(*指针名)[数组长度] ,指向一维数组的指针变量。2。引用类型:int a; int &b = a; b是a的别名,不再分配存储空间。3。引用方式和使用指针变量作形参的分别:指针变量需要原创 2008-05-26 16:25:00 · 287 阅读 · 0 评论 -
sizeof值
char str[] = "Hello";char *p = str;int n = 10;sizeof(str) = 6;sizeof(p) = 4;sizeof(n) = 4;void Func(char str[100]){sizeof(str) = 4;}void *p = malloc(100);sizeof(p) = 4;原创 2008-05-26 15:45:00 · 393 阅读 · 0 评论 -
变量作用域应该注意的问题
1。变量有三种属性分别是存储类别,作用域,存储期在此只是讨论作用域,首先温故一下旧有的知识,另外提一点需要注意的问题。局部变量(自动变量,静态局部变量,寄存器变量,形式参数)全局变量(静态外部变量,外部变量)静态外部变量需要注意的一点问题const 和static 修饰的变量是文件作用域使用时须注意下边的问题如果在头文件a.h 中定义变量iData如const int iData = 5;那么b.原创 2008-05-26 16:36:00 · 385 阅读 · 0 评论 -
编写类String的构造函数,析构函数和赋值函数
已知类String的原型class String{public:String(const char *str = NULL);String(const String &other);~String(void);String &operate = (const String &other);private:char *m_data;}String::~St原创 2008-05-26 17:07:00 · 245 阅读 · 0 评论 -
const(转)
顾名思义,const就是constant的缩写,在C++中表示其所修饰的程序语言的元素是不可以改变的。它可以修饰的程序语言的元素有数据类型(内建的和用户自定义的)、函数、函数返回值、函数参数和类,而用const修饰的数据类型一般被称为常量。相同数据类型的常量和非常量间是不可以随意的进行相互转换的: 常量可以向下兼容非常量,但是常量不能直接转换为非常量。这个问题主要是出现在调用函数时的参数传原创 2008-05-27 10:39:00 · 229 阅读 · 0 评论 -
引用和指针的比较
1.引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)2.不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)3.一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)原创 2008-06-05 15:32:00 · 204 阅读 · 0 评论