C/C++
文章平均质量分 76
nwf5d
这个作者很懒,什么都没留下…
展开
-
C++中const用法总结
转载 2009-05-23 08:33:00 · 337 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
Sizeof与Strlen的区别与联系 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以/0结尾的。 sizeof还可以用函转载 2009-10-29 15:36:00 · 482 阅读 · 0 评论 -
C++ sizeof 使用规则及陷阱分析
From: http://freeman.cnblogs.com/articles/sizeof.html前言 50米的网站http://www.50mi.net开张了,所以50米邀请我给他写点什么。说实在的,作为一个资深的潜水员,我还真没动笔写过什么东西,所以绞尽脑汁也没想起来能写什么的。不过鉴于50米喜欢在小孩子面前臭屁的,就写一篇群里讨论很多的sizeof问题吧。转载 2009-10-29 14:55:00 · 444 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C转载 2009-10-29 15:02:00 · 446 阅读 · 0 评论 -
C/C++ 内存管理 Heap vs Stack
转注: 今天有网友问到这个问题,于是在网上搜索了一下,转贴这此.相似的太多了,出处不详.在此感谢原作者精彩讲解.一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放转载 2009-10-29 15:08:00 · 670 阅读 · 0 评论 -
C/C++经典基础测试题
本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。笔试时间90分钟。请考生认真答题,切勿轻视。一、请填写BOOL , float, 指针变量 与"零值"比较的 if 语句。(10分)提示:这里"零值"可以是0, 0原创 2009-10-29 15:12:00 · 1467 阅读 · 0 评论 -
降低编译时间
关于include的原则最多,因为包含头文件相当于将代码复制到本文件来编译,而头文件又经常是用来被别人包含的,所以工程文件多了,每个文件都有 include链(包含的文件又include了其他文件),该链条不会止步于你工程,而会延伸到你所有使用的第3方库里面。A.能够去掉的include就去掉。说明:1.代码编写过程中或多或少都有一些历史遗留的不必要的头文件包含在你的文件里面,找转载 2009-10-29 15:14:00 · 537 阅读 · 0 评论 -
c++中的数据类型
long和int的区别 long是固定长度的,所占的内存空间为4个字节 。int是机器字节长度,根据你的处理器设置,如果是32位的处理器则int是32位长,如果是64位处理器则是64位长。int型的数占的内存空间在16位系统里是2个字节,在32位系统里是4个字节,在64位系统里是8个字节。sizeof(short) <= sizeof(int) <= sizeof(lon转载 2009-10-29 15:17:00 · 888 阅读 · 0 评论 -
谈谈C++继承中的重载,覆盖和隐藏
写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载(overload)和覆盖(override)搞错! 我们先来看一些代码及其编译结果。 实例一: #include "转载 2009-10-29 15:05:00 · 511 阅读 · 0 评论 -
C++ 的构造/析构/赋值/拷贝函数比较
C++ 的构造/析构/赋值/拷贝函数比较 构造函数、析构函数与赋值函数是每个类最基本的函数。每个类只有一个析构函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)和 多个赋值函数(除了同类的赋值以外,还有其他的赋值方法)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如A(void); //转载 2009-10-29 15:32:00 · 702 阅读 · 0 评论 -
C/C++软件工程师笔试题
C/C++笔试题系列预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理转载 2009-10-29 15:22:00 · 4206 阅读 · 1 评论 -
C++中的Vector的用法
注意,在使用前要包含vector对应的头文件:#includevector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。我们将在第9章更详细地介绍容器。使用vector之前,必须包含相应的头文件。本书给出的例子,都是假设已作了相应的转载 2009-05-23 09:22:00 · 1538 阅读 · 0 评论 -
堆与栈的区别
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的转载 2009-05-23 09:50:00 · 389 阅读 · 0 评论 -
五大内存分区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自转载 2009-05-23 10:01:00 · 431 阅读 · 0 评论 -
C++类对象的深拷贝、浅拷贝构造函数
在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如: int a = 10; int b =a; 自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include using namespace std; classTest { public: Test(in转载 2009-05-23 10:48:00 · 517 阅读 · 0 评论 -
STL MAP用法详解
说明:如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂。本人水平有限,不当之处,望大家辅正。 一.Map概述 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下ma转载 2009-07-10 21:24:00 · 19099 阅读 · 6 评论 -
关于内存中栈和堆的区别
原文:http://blog.csdn.net/nileel/archive/2009/06/29/4307284.aspx1、内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。 栈:由编译器(Compi转载 2009-10-11 07:53:00 · 555 阅读 · 0 评论 -
一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
[标题] char *(*(**(*(*(*x[5])(int,float))[][12])(double))(short,long))[][173] ?!今天又捧起久违的K&R C拜读了一遍。其实有点东西在6年前就想写,借着今天这个机会,终于把它写出来了。 初看一眼标题中的变量定义感觉是不是很抓狂?:)一直以来,C语言中关于指针、数据和函数的复合定义都是一个难点,其实,理解它也转载 2009-10-29 15:01:00 · 495 阅读 · 0 评论 -
C++中三个修饰符的深层剖析
static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用: 一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译转载 2009-10-29 14:57:00 · 472 阅读 · 0 评论 -
C/C++中指针加 1 的问题
先用贝尔的一道笔试题简要的说明一下吧:【题】说明以下程序。#include int main(void){ unsigned int a[3] = {0x01020304, 0x05060708, 0x090a0b0c}; unsigned int *p = (unsigned int *)((int)a +1);① printf("转载 2009-10-29 15:40:00 · 1055 阅读 · 0 评论