自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

转载 【深入理解C++】从初始化列表和构造函数谈C++的初始化机制

前段时间被人问及“初始化列表和构造有什么区别?”我竟一时语塞,只好回头拿起几本C++的大部头书,打开VS2012和vim开始倒腾。最后总结出如下几点,希望对大家理解C++能有些帮助。(题外话:我认为好的技术书籍和师者对人最大的帮助就是:帮助学者节省时间。) 综合而言,C++中类的初始化操作有四个部分组成:1.初始化列表:所有类非静态数据成员都可以在这

2015-08-27 10:28:19 344

转载 编程修养(七)

28、||和&&的语句执行顺序————————————条件语句中的这两个“与”和“或”操作符一定要小心,它们的表现可能和你想像的不一样,这里条件语句中的有些行为需要和说一下:    express1 || express2            先执行表达式express1如果为“真”,express2将不被执行,express2仅在express1为“假”时才被执行。因为

2015-08-01 15:44:24 263

转载 编程修养(六)

23、static的使用————————static关键字,表示了“静态”,一般来说,他会被经常用于变量和函数。一个static的变量,其实就是全局变量,只不过他是有作用域的全局变量。比如一个函数中的static变量:char*getConsumerName(){    static int cnt = 0;        ....    cnt++; 

2015-08-01 15:43:15 269

转载 编程修养(四)

11、出错信息的处理—————————你会处理出错信息吗?哦,它并不是简单的输出。看下面的示例:    if ( p == NULL ){        printf ( "ERR: The pointer is NULL/n" );    }    告别学生时代的编程吧。这种编程很不利于维护和管理,出错信息或是提示信息,应该统一处理,而不是像上面这样,写成一个“硬

2015-08-01 15:41:20 251

转载 编程修养(五)

16、把相同或近乎相同的代码形成函数和宏—————————————————————有人说,最好的程序员,就是最喜欢“偷懒”的程序,其中不无道理。如果你有一些程序的代码片段很相似,或直接就是一样的,请把他们放在一个函数中。而如果这段代码不多,而且会被经常使用,你还想避免函数调用的开销,那么就把他写成宏吧。千万不要让同一份代码或是功能相似的代码在多个地方存在,不然如果功能一

2015-08-01 15:41:11 230

转载 编程修养(三)

6、if 语句对出错的处理———————————我看见你说了,这有什么好说的。还是先看一段程序代码吧。    if ( ch >= '0' && ch         /* 正常处理代码 */    }else{        /* 输出错误信息 */        printf("error ....../n");        return ( FALSE

2015-08-01 15:39:56 226

转载 编程修养(二)

1、版权和版本———————好的程序员会给自己的每个函数,每个文件,都注上版权和版本。对于C/C++的文件,文件头应该有类似这样的注释:/**************************************************************************   文件名:network.c**   文件描述:网络通讯函数集**

2015-08-01 15:38:10 304

转载 编程修养(一)

编程修养————什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。我认为好的程序员应该有以下几方面的素质:  1、有专研精神,勤学善问、举一反三。  2、积极向上的态度,有创造性思维。  3、与人积极交流沟通的能力,有

2015-08-01 15:36:26 216

转载 sizeof,终极无惑『转』

目录(?)[+]前向声明sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助。

2015-07-14 09:41:43 303

转载 简单的hello word程序在计算机系统中是如何运行的

关于《深入理解计算机系统》“这本书的中译名为“深入理解计算机系统”,我非常,十分,以及百分之一百二十地不满意。我这么说的原因在于这个译法完全扭曲了书的本意。如果直译原书名,应该是类似于“以程序员的视角理解计算机系统”,何来“深入”二字。可能在国内编辑看来,这是讲系统的,用C和汇编语言的,因此很“深入”,但我认为这只能说明国内技术氛围的浅薄。因为事实上,这是一本入门级别的书,这本书其实并不“

2015-06-10 09:03:16 1327

转载 c++模板详解(一)

模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。  模板是一种对类型进行参数化的工具;  通常有两种形式:函数模板和类模板;  函数模板针对仅参数类型不同的函数;  类模板针对仅数据成员和成员函数类型不同的类。  使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换

2015-05-01 15:13:43 249

转载 语言编程需要注意的64位和32位机器的区别

一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:16位平台char         1个字节8位short        2个字节16位int            2个字节16位long         4个字节32位指针         2个字节32位平台char        

2015-05-01 14:49:39 247

转载 c++学习之map类型

1。目录map简介map的功能map的定义在map中添加元素查找并获取map中的元素从map中删除元素map对象的迭代遍历 2。map简介map是一类关联式容器,它是模板类。关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置类获取。它的特点是增加和删除节点对迭代器的影响很小,除了操作节点,对其他的节点都没有什么影响。对于迭代器来说,不可以修改键值,只能

2015-05-01 14:35:48 368

转载 判断单链表是否有环

写一段代码判断一个单向链表中是否有环。下面为链表中的结构体节点struct node{ int data; node *next;}*linklist,*s,*t; 方法一:    最简单的思路就是,定义一个指针数组,初始化为空指针,从链表的头指针开始往后遍历,每次遇到一个指针就跟指针数组中的指针相比较,若没有找到相同的指针,说明这个

2015-05-01 11:06:25 273

转载 sizeof精要

要理解 sizeof 的要点,首先要明白字节对齐。一. 字节对齐但一般而言,满足以下两点个:1) 结构体每个成员相对于结构体首地址的偏移量都是本成员大小的整数倍,如不满足则加上填充字节;2) 结构体的总大小为结构体最宽的基本类型成员大小的整数倍,如不满足则在最后加上填充字; [cpp] view plaincopyst

2015-05-01 10:44:28 278

转载 Socket通信

转载http://blog.csdn.net/xiaoweige207/article/details/6211577,文章写的很好,供大家学习参考,向博友致谢!!                                                      “一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实

2015-04-01 09:19:57 332

转载 返回局部指针变量

返回值为数值时,返回局部变量可以,而返回值为引用或指针时,则存在风险。局部变量是存在于栈中的,函数被调用时先在栈中为变量申请空间,调用完成释放变量空间。函数在返回参数的时候是这样的,先把要返回的数放在寄存器eax中,然后回到主函数中取出eax中的数值放在变量里,所以这样是不涉及函数中变量地址的。如果要返回引用,也就是变量地址,那么它会把这个变量的地址放在eax中,(注意这个地址是位

2015-03-31 10:40:10 394

转载 程序员面试笔试宝典 —机械工业出版社—程序设计基础(第7章)

7.1C/C++关键字7.1.1static(静态)变量有什么作用关键字static的3个明显的作用:(1)在函数体内,静态变量具有“记忆”功能,即一个被声明为静态的变量在这一函数被调用的过程中其值维持不变。(2)在模块内(但在函数体外),他的作用域范围是有限制的,即如果一个变量被声明为静态的,那么该变量可以被模块内的所有函数访问,但不能被模块外的其他函数访问。他是一个本地的全局变

2015-03-31 10:25:04 886

转载 const int* pt || int* const pt || const int* const pt 之间的区别

const int* pt || int* const pt || const int* const pt 之间的区别转自该链接1 从const int n 说起 const int n=20,有了const修饰的n 我们不称它为变量,而称符号常量,代表着20这个数。这就是const 的作用。n是不能在它处重新赋新值了。 认识了const 作用之后,另外,我们还要知道格式的

2015-03-30 21:35:54 286

转载 一个fork的面试题

转自 酷 壳 – CoolShell.cn前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?123456789101112131415

2015-03-19 16:44:49 270

转载 C语言的谜题

转自 酷 壳 – CoolShell.cn 这几天,本站推出了几篇关于C语言的很多文章如下所示:语言的歧义 [酷壳链接] [CSDN链接]谁说C语言很简单? [酷壳链接] [CSDN链接]6个变态的C语言Hello World程序 [酷壳链接] [CSDN链接]如何加密/弄乱C源代码 [酷壳链接] [CSDN链接]C语言的谜题 [酷壳链接] [CSDN链接]我们可以

2015-03-19 16:41:54 251

转载 C语言基础考察

下面程序的输出是什么?你是不是一眼就能看出来呢???考察C语言的基本功。1.[cpp] view plaincopy#include  #include  #include  #include  using namespace std;    int main()  {      int a =

2015-03-17 20:44:47 378

转载 C++this指针的理解

先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针

2015-03-17 20:43:45 246

转载 C++易错点总结

1.下面这段代码考察变量的作用域问题。[cpp] view plaincopy#include  using namespace std;    void other()  {      static int a = 2;      static int b;      int c = 10;      a +

2015-03-17 20:43:39 412

转载 C++中指针和引用的区别

★相同点:●都是地址的概念;//作用于地址指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。★不同点:●指针是一个实体,而引用仅是个别名;●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;●引用没有const,指针有const,const的指针不可变;●引用不能为空,指针可以为空

2015-03-17 20:38:11 226

转载 C指针两个疑惑

1.[cpp] view plaincopy#include   #include     int main()  {      char m_array[200];      int i;      int *ptr=m_array;        for ( i=0; i    {       

2015-03-17 20:34:55 289

转载 C指针详解

原文地址:http://blog.163.com/soloman_hao/blog/static/209653155201293011166300/在查阅资料的时候,无意发现了这篇博客。发现写的很详细,适合学习。但是由于博客排版的问题,并不是很方便学习,所以,秉着学习的态度,将次博客转载到这里,方便大家共同学习进步。(在转载过程中,除了排版的修正外,适当的做了些修改,还望见谅。)

2015-03-17 20:33:33 221

转载 内存管理

内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C

2015-03-17 20:30:31 604

转载 Linux内存管理

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows是只在需要内存时,才为应用程序分配内存,并不能充分

2015-03-17 20:30:22 262

转载 C语言变量存储类别

1.变量的存储类别变量除了类型属性(int ,char ,float....)外,另外一个重要属性就是存储类别系统把程序中用到的数据区分为静态存储区和动态存储区。静态存储区:在这个区分配了空间的变量,在程序运行过程中一直存在,即相对是不变的。动态存储区:在这个区分配了空间的变量,可能随时被释放,即相对是不断变化的。 c语言提供了存储类别说明符包括: 

2015-03-17 20:11:37 511

转载 strtok源码剖析 位操作与空间压缩

地址:http://blog.csdn.net/morewindows/article/details/8740315转载请标明出处,谢谢。欢迎关注微博:http://weibo.com/MoreWindows      strtok源码剖析       strtok函数可以用于分隔字符串,最近看了下这个函数的源代码,其中有[cpp] view plai

2015-03-17 19:42:58 355

转载 位操作基础篇之位操作全面总结

Title:       位操作基础篇之位操作全面总结Author:     MoreWindowsE-mail:      morewindows@126.comKeyWord:   C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大

2015-03-17 19:40:56 194

转载 代码优化的艺术

1.整数求余.我万万没有想到过,求余运算符%也会成为被优化的对象,从前写下循环链表的例子:[cpp] view plaincopyint a[N];  void append(int m)  {   i = (i+1) % N;   a[i] = m;  }  看哪,多么简洁的代码,多么美妙,你几乎

2015-03-17 19:34:31 220

转载 heap和stack有什么区别

1.heap是堆,stack是栈。2.stack的空间由操作系统自动分配和释放,heap的空间是手动申请和释放的,程序的运行场所是内存,栈和堆是进程的虚拟内存中的两部分区域。当程序被执行时,程序代码,你所创建的变量、常量等都会被压入栈空间里,栈是程序代码的执行区域。栈的内存地址是连续的且被一一记录,所以说当你创建了一个变量(比如int var = 1),我们就可以通过var这个变量

2015-03-17 11:25:39 540

转载 C/C++ STACK &HEAP 区别

堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式

2015-03-17 11:24:42 258

转载 malloc() & free()函数区别

一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前

2015-03-17 11:12:10 221

转载 Stack的三种含义

学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。在这种数据结构中,数据像积木那样一层层堆起来,后面

2015-03-17 11:00:10 351

转载 strlen和sizeof的区别

一、sizeof    sizeof(...)是运算符,而不是一个函数。    一个简单的例子:int a;cout    在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此sizeof不能用来返回动态分配的

2015-03-16 15:10:38 238

转载 strcpy和memcpy的不同

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

2015-03-16 15:01:56 203

原创 C/C++知识点积累

1. n % 2^m == n&(2^m - 1) ,举例:n%2  = = n&1 ,n%4 == n&3, n%8 ==  n&7 ......成立的条件:n必须是无符号的整数, 对于负数是无效的  举个例子:22%8    22的二进制10110,8的二进制1000,7的二进制0111,取余相当于用22去减8,一直减到差小于8,由2^n的特殊性(只有最高位是1,后面的n位全部是0),

2015-03-13 15:17:56 231

sopcast 网络电视

Version: SopCast 3.0.3 File: Setup-SopCast-3.0.3-2008-4-30.exe Advice: Please Upgrade to this release Change log: 1. Improve the data transfering performance 2. Fixed a bug in data transfering layer 3. Fixed a bug in lauching external player 4. Add a FAQ tab in client 5. Fixed some other minor bugs 更新日志: 1. 提高数据传输效率 2. 修复数据传输中的bug 3. 修复打开外部播放器的bug 4. 在客户端中增加FAQ页 5. 修复其他bug

2009-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除