C++面试
一捧光阴
蹉跎错,消磨过,最是光阴化浮沫
展开
-
#include <filename.h>和#include "filename.h"有什么不同?
#include <filename.h>// 表示从当前开发环境所设定的目录去寻找filename.h文件#include "filename.h"// 表示从当前用户工作环境所设定的目录去寻找filename.h文件原创 2016-04-19 15:14:47 · 1287 阅读 · 0 评论 -
有关内存的GetMemory()函数
void GetMemory(char* p){ p = (char*)malloc(100);}void Test(){ char* str = NULL; GetMemory(str); strcpy(str,"Crash"); printf("str = %s",str);}/* 以上函数会导致出现崩溃并且造成内存泄漏,奔溃是因为str的值一直原创 2016-04-19 15:44:05 · 906 阅读 · 0 评论 -
头文件中#ifndef/define/endif的作用
防止头文件被重复引用,是格式如下:#ifndef _GAMEDATA_H_#define _GAMEDATA_H_class GameData{public:protected:private:};#endif// 如果使用以上格式,在别的头文件或实现文件中重复包含是不会报错的,如下所示:#include "GameData.h"#include "GameData.h"#in原创 2016-04-19 15:11:09 · 645 阅读 · 0 评论 -
strcpy与memcpy的区别
strcpy与memcpy的区别1.复制的内容不同:strcpy()只能复制字符串,而memcpy()可以复制任意内容,例如字符数组、整型、结构体、类等。2.复制的方法不同:strcpy()不指定长度,它遇到被复制字符串结束符”\0”才结束拷贝,所以容易溢出。 memcpy()则是根据其第三个参数决定复制的长度。3.用途不同:通常在复制字符串时用strcpy(),而需要复制其他类型数据时则原创 2016-04-18 19:09:56 · 836 阅读 · 0 评论 -
编写String的构造函数、析构函数、拷贝构造函数、赋值函数
函数原型class String{public: String(const char* str = ""); ~String(); String(const String& other); String&::operator=(const String& other);};String的普通构造函数String::String(const char* str)原创 2016-04-19 15:04:27 · 461 阅读 · 0 评论 -
计算struct的大小
结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题.struct stu1{ int i; char c; int j;}先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的原创 2016-05-23 13:51:53 · 4827 阅读 · 0 评论