
C/C++基础知识
vforkliu
专注移动互联网用户增长方案
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++基本数据类型---数组
在各种有关C/C++的书籍和网页都对这个话题进行了详细的讲解。这篇文章只是记录作者在编程中的经验和困惑。 先看下面的语句 int p[5] = {1,2,3,4,5}; 相信大家都很熟悉这行语句表达的含义:定义一个有5个元素的整型数组,并初始化。但是p的含义是什么呢? p是一个数组名,代表数组首元素的地址。p是一个变量吗?不是!(原创 2009-04-04 17:08:00 · 1158 阅读 · 0 评论 -
C++ placement new
<br />在处理内存分配的时候,C++程序员会用new操作符(operator new)来分配内存,并用delete操作符(operator delete)来释放内存。这是一个new操作符的例子。<br /><br /> class CTest<br /> {<br /> /* 成员函数和成员数据 */<br /> };<br /><br /> // . . . 代码<br /><br /> // 分配一个对象<br /> CTest * pTest = new Test;<br转载 2010-07-16 15:24:00 · 454 阅读 · 0 评论 -
C++ volatile
<br />c++中的volatile关键字一直没有使用过。最近使用了一下。该关键字的意思就是告诉编译器不要对该变量进行优化,使用地址对该变量进行取值而不要直接使用该变量已经存在cach/寄存器中的值。转载 2010-07-16 15:26:00 · 508 阅读 · 0 评论 -
C++类型萃取技术
<br /> Traits技术可以用来获得一个 类型 的相关信息的。<br /> 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:<br /><br /> template <typename T><br /> class myIterator<br /> {<br /> ...<br /> };<br /><br /> 当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以为这个类加入一个内转载 2010-07-16 15:23:00 · 1010 阅读 · 0 评论 -
memcpy和memmove的区别
memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下: void* memcpy(void* dst,const void* src,size_t count); void* memmove(void* dat,const void* src,size_t count); 它们都是从src所指的内存复制count个字节到dst所指的内存中,并返回dst的值。当源内存区域和目标内存区域无交叉时,两者的结果是一样的,但如原创 2010-11-23 21:31:00 · 792 阅读 · 0 评论 -
VC开发环境下DEBUG和RELEASE的一个区别
<br /> 在DEBUG版下调用memcpy和memmove实际上都是调用的同一个函数memmove,只有在RELEASE版下memcpy和memmove调用才区分开。<br /> 这是我在测试memcpy和memmove这两个函数发现的。示例代码如下:<br /> #include <stdio.h><br /> #include <string.h><br /> int main(int argc,char* argv[])<br /> {<br />原创 2010-11-23 21:41:00 · 839 阅读 · 0 评论 -
安全的字符串复制函数strcpy_safe的实现
<br />char* strcpy_safe(char* dst,const char* src) { size_t len = strlen(src); char* cp = dst; if(dst == NULL) { return NULL; } if(dst<=src || (char*)dst >= ((char*)src + len)) { while(*src) { *dst++ = *src++; } *dst = '原创 2010-11-23 22:05:00 · 2451 阅读 · 0 评论