![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
语言基础
文章平均质量分 82
simbi
232
展开
-
理解复杂的C/C++声明
介绍曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C++声明并不是好的编程风格;原创 2006-01-18 15:10:00 · 527 阅读 · 0 评论 -
解决svn冲突的办法
1。其实避免的冲突最好的办法就是: 项目人在配合工作的时候,彼此之间很好的交流(我们都是面对面坐着)作者:禚来强 原文地址: http://blog.csdn.net/diyagoanyhacker/article/details/67875092。当出现冲突的时候,转载 2011-09-19 10:25:52 · 579 阅读 · 0 评论 -
C++重载箭头操作符的理解
<br /><br />今天看《C++ Primer》的成员访问操作符。看重载箭头操作符部分,刚开始有点迷茫,看了两遍总算有点理解,把心得写在这,与各位分享,如果有错误欢迎指正。<br />箭头操作符(->)的通常用法是,使用一个类对象的指针来调用该指针所指对象的成员。左操作数为对象指针,右操作数为该对象的成员。定义重载箭头操作符之后看起来就有点特别,可以用类对象的指针来调用,也可以用类对象直接调用。<br />重载箭头操作符,首先重载箭头操作符必须定义为类成员函数。<br />箭头操作符可能看起来是二转载 2010-08-16 12:14:00 · 333 阅读 · 0 评论 -
offsetof(s,m)
<br />offsetof(s,m) 是一个宏,MSDN文档的说明如下:<br /><br />Retrieves the offset of a member from the beginning of its parent structure.<br /><br />size_t offsetof(<br />structName,<br />memberName<br />);<br /><br /><br />Parameters<br /><br />structName<br /转载 2010-08-12 16:25:00 · 327 阅读 · 0 评论 -
字符编码详解
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)转载 2009-12-30 12:04:00 · 333 阅读 · 0 评论 -
正则表达式元字符列表
基本元字符元字符 说明 . 匹配任意单个字符 | 逻辑或操作符 [] 定义一个字符集合,匹配该集合中的一个字符 [^] 对字符集合求非(是对整个集合求非,而不是紧挨着^符号的字符) - 在字符集合中定义一个区间。如[A-Za-z] / 对下一个字符转义。比如/n表示换行。 数量元字符元字符 说明 * 匹配前一个字符(子表达式)零次或多次 *? *转载 2010-01-15 12:23:00 · 459 阅读 · 0 评论 -
C语言里的左移和右移运算
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用int i = 1;i = i 也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化,下面解释原因)转载 2009-06-02 22:44:00 · 6427 阅读 · 0 评论 -
设计模式原则详解
这篇文章,不需要你一次就看懂,如果你真的能一次都看懂,我想设计模式对于你来说已经没什么难度了..因为设计模式就是要体现这些原则的,你可以把设计原则看做是一门语言,设计模式是由这些语言编码的程序..你既然已经明白,精通了语言,剩下的编码自然是很简单的事情,编码的越多则经验越多,经验越多则对原则的理解就越深...这是一个学习领悟的过程..S-uY t8S;q0itlab博客.E#F@zr转载 2009-04-13 16:47:00 · 437 阅读 · 0 评论 -
STL中的排序算法一览[By ACM郭老师]
这篇文章我很喜欢,是郭老师的新作!希望大家喜欢!详细的从算法的效率方面来说明了排序算法!STL中有多种排序算法,各有各的适用范围,下面听我一一道来:I、完全排序sort() 首先要隆重推出的当然是最最常用的sort了,sort有两种形式,第一种形式有两个迭代器参数,构成一个前开后闭的区间,按照元素的 less 关系排序;第二种形式多加一个指定排序准则的谓词。sort基本是最通用的排序函数,它使用快转载 2008-05-22 16:49:00 · 583 阅读 · 0 评论 -
C语言程序设计基础之枚举与位运算
在实际问题中, 有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等。如果把这些量说明为整型, 字符型或其它类型显然是不妥当的。 为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是, 枚举类型是一种基本数据类型,而不是一种构造类型, 因为它转载 2007-11-15 15:43:00 · 406 阅读 · 0 评论 -
常用编码详解
一、通用字符集(UCS)ISO/IEC 10646-1 [ISO-10646]定义了一种多于8比特字节的字符集,称作通用字符集(UCS),它包含了世界上大多数可书写的字符系统。已定义了两种多8比特字节编码,对每一个字符采用四个8比特字节编码的称为UCS-4,对每一个字符采用两个8比特字节编码的称为UCS-2。它们仅能够对UCS的前64K字符进行编址,超出此范围的其它部分当前还没有分配编址。二、基本原创 2007-08-18 17:26:00 · 441 阅读 · 0 评论 -
宏的妙用
1、概述 C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使得宏似乎没有了用武之地。实际上,宏还可以做很多事情,笔者也难以全部列举。这里,仅仅列举几个典型的用法,希望大家能够从中获益。 2、实现多环境兼容 常见的情况是,我们实现了一个函数,希望它只在某种编译条件满足是被编译和使用。例如,我希望在源码中插入调试语句,以便以Debug方式运行时能够通过调试信息观察程序运行情转载 2006-07-31 17:36:00 · 583 阅读 · 0 评论 -
五大内存分区
五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,转载 2006-09-08 14:06:00 · 630 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(转载 2006-03-04 21:37:00 · 608 阅读 · 0 评论 -
C/C++ 表达式求值顺序的标准解释
表达式求值顺序不同于运算结合性和优先级。下面是一个经典例子,被 ISO C99/ C++98 /03 三大标准明确提到:他的结果是不确定(unspecified) 的。 i = ++i + 1; // The behavior is unspecified 在介绍概念之前,我们先解释一下它的结果。这个表达式( expression )包含3个子表达式( subexpress转载 2006-03-12 22:58:00 · 1039 阅读 · 0 评论 -
多态性与虚函数
多态性与虚函数 面向对象理论中的3个术语:对象、方法和消息。对象(object):不言而喻,它是构成系统的基本单位,有属性和行为两个要素,在C++中,每个对象都是由数据和函数这两部分组成的,数据即是对象的属性,行为称之为方法(method),方转载 2011-08-22 17:26:17 · 368 阅读 · 0 评论