C/C++
文章平均质量分 71
cool_bomb
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
堆和栈的相关比较
1申请方式栈的申请:由系统自动分配空间。声明在函数中一个局部变量 int b; 系统自动在栈中为 b 开辟空间 堆的申请:需要自己申请,并且指明申请的大小。在 c 中 malloc 函数 如 p1 = (char *)malloc(10); 在c++中int *a=new int[100];2申请空间后系统如何处理对于栈:如果申请的空间小于栈的剩余空间,系统将为程序提供所需转载 2013-01-13 16:48:29 · 508 阅读 · 0 评论 -
C++ 中类与结构体的区别
除关键字不同外(class,struct)的唯一区别是,结构在默认情况下的成员是公共的,而类在默认情况下的成员是私有的。 c中不能,c++里可以在结构体内定义函数,用法和class定义类是一样的。structs are often used to hold small sets of data, whereasclasses are more often used when there a转载 2013-02-12 05:36:51 · 472 阅读 · 0 评论 -
c语言中的数据流
stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流。什么是数据流呢(stream)?我们知道,一个程序要运行,需要有输入、输出,如果出错,还要能表现出自身的错误。这是就要从某个地方读入数据、将数据输出到某个地方,这就够成了数据流。因此,一个进程初期所拥有的这么三个数据流,就分别是标转载 2013-01-17 23:21:25 · 6532 阅读 · 0 评论 -
C++虚函数
你一定不要被 "虚函数 "这个词吓着,我一开始就被它吓着了,以为这又是个什么东东。 现在我就把我脑子里的虚函数聊聊,各位大见笑了: 在我们现实生活中有很多词,比如“开”这个词,现在有一辆汽车和一辆自行车在你面前,我对你说,“请把这个车开起来!” 当我指向汽车时,你就会加油门,然后转方向盘,汽车开起来。如果我指向自行车时,你就会两脚一登,把自行车开起来。你看,我对两种东西(汽车、自行车)转载 2013-02-13 19:06:40 · 414 阅读 · 0 评论 -
虚函数在C++中是如何实现的
http://blog.youkuaiyun.com/haoel/article/details/1948051/虚函数的主要作用就是实现多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。C++虚函数的调用在运行时动态的转载 2013-02-13 22:57:05 · 572 阅读 · 0 评论 -
计算一个无符整数中1Bit的个数(1)
http://blog.chinaunix.net/uid-21275705-id-224360.htmlCount the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)计算一个无符号整数中有多少的Bit为1这是一个经常遇到的经典问题,这里分两个部分讲解和总结,首先对讲解现转载 2013-02-17 16:22:42 · 687 阅读 · 0 评论 -
C++ STL
http://blog.youkuaiyun.com/zlgrj1986/article/details/2252787STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和转载 2013-02-19 15:51:26 · 480 阅读 · 0 评论 -
hash_table和STL map
SOLUTIONCompare and contrast Hash Table vs. STL map在hash_table中value通过使用哈希函数产生的关键字来存储。因此在hash table中值不是以有序的方式来存储。此外,由于使用key找到下标来存储value,所以插入和查找能够在O(1)时间内完成。在hashtable中必须处理潜在的冲突。In a hash table,翻译 2013-02-12 19:23:40 · 1663 阅读 · 0 评论 -
bit_vector位向量容器
http://blog.163.com/zhoumhan_0351/blog/static/3995422720103892031806/bit_vector位向量容器一、原理bit_vector位向量容器是一个bit位元素的序列容器,具有vector容器一样的成员函数,常用于硬件端口的控制。区别于vector的一个重要特性是bit_vector更节省内存空间,一个元素只占转载 2013-02-20 22:59:03 · 3930 阅读 · 0 评论 -
常量字符串为什么位于静态存储区?
http://hi.baidu.com/benzhan/item/8c52be37ca4c9bd76c15e9f9char *c="chenxi";书上说: "chenxi"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符串常量都被放在静态内存区因为字符串常量很转载 2013-03-06 20:53:20 · 564 阅读 · 0 评论 -
在函数中使用二维数组做参数
将一维数组声明为函数的形参,在函数的形参列表中,可以让数组的括号为空。例如,一个以一维数组为形参的函数原型可以用以下语句声明:void process1DArray(int[]);一个二维数组的行数(由二维数组的第一个下标指定)不是必需的,而列数(由第二个下标指定)是必需的。例如,以下这个函数原型声明表示函数有一个二维数组参数,其列数由整型常量SIZE指定:void process2D转载 2013-05-25 18:52:30 · 4932 阅读 · 1 评论 -
char,short ,int ,long,long long,unsigned long long数据范围
http://hi.baidu.com/yangyangye2008/item/ba0a35395420d2f9df222157char,short ,int ,long,long long,unsigned long long数据范围速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned转载 2013-07-09 21:23:17 · 897 阅读 · 0 评论 -
c++浮点数存储方式
http://zhidao.baidu.com/question/82272119.html最近一段时间看到版上关于C++里浮点变量精度的讨论比较多,那么我就给对这个问题有疑惑的人详细的讲解一下intel的处理器上是如何处理浮点数的。为了能更方便的讲解,我在这里只以float型为例,从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是转载 2013-06-23 14:53:32 · 784 阅读 · 0 评论 -
C语言编译过程总结详解
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链转载 2013-03-02 00:59:15 · 457 阅读 · 0 评论 -
inet_aton和inet_network和inet_addr三者比较
本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn。文章作者为rocrocket。210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英转载 2013-02-10 22:25:44 · 2577 阅读 · 0 评论 -
C++中cout输出字符型指针地址值的方法
在C++中,如果cout一个字符数组的话,那么它会沿着这个地址,一直输出这个字符串,直到遇到'\0'先给出通过字符型指针输出字符串的示例代码,如下:#include using std::cout;using std::endl;int main(){ const char *pszStr = "this is a string";转载 2013-02-13 18:48:57 · 843 阅读 · 0 评论 -
static的用途分析
转自http://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个转载 2013-01-13 15:33:39 · 418 阅读 · 0 评论 -
在C\C++中,内存的4个分区
在C\C++中,通常可以把内存理解为4个分区:栈、堆、全局/静态存储区和常量存储区。下面我们分别简单地介绍一下各自的特点。1栈栈里边存放的变量在编译期间就能确定其存储大小,他们在函数作用域内创建,离开函数作用域后会被自动销毁。栈里边的变量一般为:局部变量,函数参数。并且他们的存储空间也是和定义的顺序一样,如果两个变量先后定义,那么他们的存储空间就是连续的,挨着的。而且栈的大小也是有转载 2013-01-13 16:07:20 · 1712 阅读 · 0 评论 -
C++ map 使用
map常用成员(关联容器)----创建map,增insert,删erase,改查找find,然后修改second,遍历iterator,获取元素个数size,判空empty map是STL的一个关联容器,它提供一对一(第一个字段为关键字,每个关键字只能在map中出现一次,第二个字段称为该关键字的值)的数据处理能力,由于这个特性 map内部的实现转载 2013-01-28 22:32:32 · 710 阅读 · 0 评论 -
hash_map和map的区别
这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。4.1 hash_map和map的区别在哪里?构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不一样的。4.2 什么时候需要用hash_map,什么时候需要用m转载 2013-01-29 20:34:48 · 699 阅读 · 0 评论 -
sprintf,你知道多少? .
http://blog.youkuaiyun.com/sjf331/article/details/339254选自《优快云 社区电子杂志——C/C++杂志》http://emag.youkuaiyun.com 2005 年1 月 总第1 期 - 93 -本文作者:steedhorse(晨星)printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是转载 2013-02-02 17:05:34 · 915 阅读 · 0 评论 -
stl容器区别: vector list deque set map-底层实现
http://blog.youkuaiyun.com/chshji666666/article/details/7005861在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射转载 2013-02-08 20:52:04 · 432 阅读 · 0 评论 -
函数调用中实参和形参变化问题
http://blog.chinaunix.net/uid-27645052-id-3337748.html很多初学者搞不明白子函数中什么时候可以改变实参值,什么时候不会改变。今天来具体分析下。 先来解释下实参和形参,所谓实参,就是通过主函数传递给子函数的变量。而子函数中用来接收变量的参数就称形参。如下:点击(此处)折叠或打开#inc转载 2013-02-07 23:58:38 · 1477 阅读 · 0 评论 -
memcpy,strcpy
http://blog.youkuaiyun.com/xinpo66/article/details/8551728函数原型void *memcpy(void *dest, const void *src, size_t n);功能从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中所需头文件#include 返转载 2013-02-08 00:48:59 · 359 阅读 · 0 评论 -
如何实现不依靠中间量实现两个变量值的交换
如何实现不依靠中间量实现两个变量值的交换:a = a + b;b = a - b;a = a - b;或者a = a^b;b = a^b;a = a^b;其中后面的这种方式更加的优越。转载 2013-02-09 00:46:35 · 488 阅读 · 0 评论 -
c++函数参数类型-引用
http://blog.youkuaiyun.com/jianchi88/article/details/6837053在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数。这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身。例如:void changeVar(int myVar,int newValu转载 2013-02-08 00:33:03 · 417 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系(转)
Sizeof与Strlen的区别与联系(转)1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做参数,比如:转载 2013-02-09 00:49:47 · 538 阅读 · 0 评论 -
ip地址和整数转换
inet_addr函数 地址转换, 把"A.B.C.D"的IP地址转换为32位长整数[声明] unsigned long inet_addr ( const char FAR *cp );[参数] cp - 指向IP地址字符串的指针[返回值] 当函数成功调用时返回用32位整数表示的IP地址 失败时返回INADDR_NONE.实际是就是一个按位的排列,比如转载 2013-02-10 22:08:23 · 13829 阅读 · 0 评论 -
什么是网络字节序,主机字节序??
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。主机字节序就是我们平常说的大端和小端模式:不同的 CPU 有不同的字节序类型,这些字节序是指整数在内存中保存的顺序 这个叫做主机序。LE little-endian最符合人的思维的字节序地址低位存储值转载 2013-02-10 22:17:34 · 1576 阅读 · 0 评论 -
读取文件的最后十行
使用c设计一个方法去打印输出文件的最后十行5.2 Write a method to print the last ten lines of an input file using C.SOLUTION比较笨的办法是记录文件的行数,然后打印最后十行。但是如果文件很大,两次读取文件很费时。所以我们可以用数组存储读取的行数,先读取十行,这时当读取新的一行时将第一个元素覆盖,再读取一翻译 2013-02-12 06:13:22 · 1074 阅读 · 0 评论 -
sizeof strlen 的计算结果
#include #include void main(){ char *p = "this is "; printf("sizeof:%d ,strlen:%d\n",sizeof(p),strlen(p)); // sizeof 在编译期间确定 用来计算某种类型或对象所占的字节数 p为指针 所占字节数为4 //strlen 在运行时求值 得到的字符串中第一个 '\0' 之前所有原创 2013-07-05 11:21:22 · 701 阅读 · 0 评论
分享