自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

转载 C中八进制和十六进制转义字符揭秘

在c中有一种数值型的转义字符,即’\ddd’的三位八进制转义字符和’\xdd’的两位十六进制转义字符。这两种转移字符其代表着一个字节大小的整数值字符。首先什么是转义字符,顾名思义转义字符最终是一种字符,只不过它是被转义了一下。所以它是一个字符的本质是不会变的。这也就是上面为什么说“这两种转移字符其代表着一个字节大小的整数值字符。”,因为字符是一个字节大小的。它是一个字符,但是由一个整数(三位八

2015-09-30 21:30:18 33039 1

转载 C/C++中的转义字符 (普通转义字符、八进制转移字符及十六进制转义字符)

从表中可以看出,在C语言中有三种转义字符,它们是:一般转义字符、八进制转义字符和十六进制转义字符。1. 一般转义字符这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为:\a  \n  \t  \v  \b  \r  \f  \\  \’  \"细心的读者可能已经发现,转义字符'\\'代表的反斜杠"\"、转义字符’\’’代表的字符"'

2015-09-30 21:01:25 16082 14

转载 当数据类型为long的变量后面没有L加会有什么后果

C/C++中long,short,int的具体区别是:占内存长度不同和取值范围不同int 32位 -2^32---2^32-1short 16位 -32768~32767 32位系统:long是4字节32位,int是4字节32位64位系统:long是8字节64位,int是4字节32位见下面两题:将本实验的实验内容1中的        long l=3615

2015-09-30 20:08:20 5753

转载 字节序--大端模式和小端模式

在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。一、什

2015-09-30 19:26:24 780

转载 char数组 、char指针与字符串常量的比较

数组不是基本类型,不能直接参与比较,数组与字符串及字符指针与字符串比较其实比较的是二者的地址。例:int isequiv(char *t){if (t == "char")return 1;elsereturn 0;}int main(){char test[] = "char";char *temp = "char";printf("%d"

2015-09-30 18:48:09 12332 2

转载 如何动态开辟二维空间的问题,

其实就是如何动态开辟二维空间的问题, 这个问题在C++ 学习者中是每个人都会遇到的, 针对这个问题我写了一个 Demo code, 希望对你以及对大家会有一些帮助。[CODE]#include #include using namespace std;int main(){int rows = 2;int cols = 3;// create a dyn

2015-09-28 12:40:11 444

转载 C++ 动态开辟二维数组的的方法

动态开辟二维数组,方法1:用new在堆上开辟;方法2:用vector开辟。   一:C++ new 法#include #include using namespace std;void main(){    int row, col;    int **element = NULL;     cin>>row        >>co

2015-09-28 12:37:00 3657

转载 C语言中输入输出重定向,freopen()妙用。

C语言的文件操作 freopen今天做USACO  用到了文件的操作。 之前做USACO只是格式化的些 写  freopen("xxx.in","r",stdin)  和"freopen("xxx.out","w",stdout)"  百度百科上是这么介绍的:    函数名: freopen  功 能: 替换一个流,或者说重新分配文件指针,实现重定向。如果stream流已经打开

2015-09-25 18:04:57 16968

转载 scanf()函数

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:scanf("%d,%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返回值为0如果遇到错误或遇到end of file,返回值为EOF。且返回值为int型.scanf()函数的返回值         我

2015-09-25 16:29:20 466

转载 关于输出用%lf和%f的问题

%f 对应 float %lf 对应 double %Lf 对应 long double %e以科学计数法显示 %g在%e和%f中择短显示C++果然是非常微妙的语言,%f和%lf对于printf()和scanf()的效果是不同的。事实上,对于printf(),无论是%f还是%lf,效果都是一样的。因为,遇到float,printf()会将float类型自动提升到do

2015-09-25 14:21:53 3030

转载 unget()

一次unget()调用会引起流后退一个位置,其本质是把最后一个字符读回到流中。下面是使用unget()的情况,程序下如:#include using namespace std;int main() {char ch1, ch2, ch3;cin >> ch1 >> ch2 >> ch3;cout cin.unget();char firstChar, seco

2015-09-25 09:38:58 1144

转载 win7跨网段共享解决方法

单位的电脑安装WIN7系统,IP是192.168.20.0网段,而公司有些电脑使用的是60网段IP,在我的电脑上面共享时,本网段内的电脑可以访问,但60网段的电话确不能访问,而且也PING 不通!如果关掉WIN7的防火墙,就可以正常使用。确定是WIN7的防火墙设置问题,找出如下解决方法: 1.解决跨网段不能PING 通问题进入WIN7控制面板----管理工具---高级安全

2015-09-24 21:23:26 29856 2

转载 谈谈final, finally, finalize的区别

一、final如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在new一个对象时初始化(即只能在声明变量或构造器或代码块内初始化),而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用

2015-09-20 20:40:54 310

转载 回文字符串

描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0接下来的N行,每行一个字符串,每个字符串长度不超过1000.输出每行输出所需添加的最少

2015-09-20 00:13:38 406

转载 Word2007文档中自动添加目录

方法1①首先打开Word文稿,单击菜单栏“引用”→“目录”设置目录标题名称。②点击“目录”展开列表,单击“插入目录”。③在这用户单击“选项”按钮。 ④此时进入“目录选项”这里设置目录级别,更改完成后按“确定”。⑤然后修改目录名称和字体,点击“修改”。⑥在“

2015-09-17 10:09:38 473

转载 总结:word2007中插入页眉页脚和页码

页脚,其实我们考虑的就是怎么样在它里面加入页码,这是我尝试的第一步。硕博论文要涉及到两类页码,一类是前面的摘要、目录部分,使用Ⅰ、Ⅱ、Ⅲ...。这种样式的页码;后面的正文部分使用阿拉伯数字1、2、3 ...,并且论文首页不加页码。注意:加页码最重要的是,如果某一部分需要添加相同样式且连续的页码,最好将这一部分单独分为一节,例如文章中的每个章节可以当做一节(尤其对于那种要求每章页眉不同的

2015-09-17 09:19:26 1347

转载 如何去掉word自动生成目录的超级链接?

问题:整理文档时,想把word自动生成的目录拷贝到一个单独的文件,结果拷贝出来时的目录在打印预览时页码处总是"错误"原因:拷贝出来的目录带超级链接的缘故解决办法:全选目录,按Ctrl+Shift+F9,取消所有链接。参考资料:---来自新浪爱问(如果想取消某一个超级链接,可以用鼠标右键单击该超级链接,并在弹出的快捷菜单中选择“取消超级链接”选项。  如果想一次取消文档中所有

2015-09-17 09:01:52 9502

转载 Word使用样式技巧:解决创建目录后出现的打印错误---超链接错误

解决创建目录后出现的打印错误利用Word的自动创建目录的功能,可以把Word文档的目录层次结构方便地作成目录,不但方便快捷,还会与原来文档一致。但是如果也需要显示页码,等到打印时往往发现打印的结果在目录后面出现“错误!未定义书签”(错误的目录页码会改变!!)(也有可能文章中某个地方引用另一篇文章中章节或文献用了超链接,也可能出错。)。此时,很多人只好不要页码而人工把页码加进去。这对于长期排版式

2015-09-17 08:51:37 6825

转载 C++静态成员函数小结(转)

类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时

2015-09-14 08:47:59 446

转载 浅析extern “C”的作用

浅析extern “C”的作用         关于extern “C”的作用和意思,网上资料已经有很多了(我也参考了几篇),不过我还是觉得有必要自己总结一下,毕竟“好记性不如烂笔头”嘛~~        到C标准函数库的头文件里看看,一般会经常看见有如下宏定义(除非你从来没有查看类似printf函数在头文件中的定义,就另当别论了:-()#ifdef __cplusplusext

2015-09-13 20:58:27 381

转载 extern C的作用详解

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。     这个功能十分有用处

2015-09-13 20:55:39 283

转载 递归算法详细分析-> C

C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。     许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。但是在阶乘的计算里,递归并没有提供任何优越之处。在菲波那契数列中,它的效率更是低的非常恐怖。     这里有

2015-09-13 15:39:48 346

转载 抽象类(abstract)和接口(interface)的区别

1 抽象类是不能被实例化的类,只能作为由其他类继承的基类;   接口则定义了实现某种服务的一般规范(Objective-C中将接口称为“协议”(protocol)),声明了必需的函数和常量,但不指定如何实现。2 子类通过extends关键字来继承抽象类(且只能继承一个);   类通过implements关键字来实现接口(可以实现多个)。3 在抽象类中定义的所有方法都必须在子

2015-09-12 20:26:19 432

转载 C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员

有关const成员、static成员、const static成员的初始化:1、const成员:只能在构造函数后的初始化列表中初始化2、static成员:初始化在类外,且不加static修饰3、const static成员:类只有唯一一份拷贝,且数值不能改变。因此,可以在类中声明处初始化,也可以像static在类外初始化示例: #include using st

2015-09-12 19:38:54 4942 2

转载 C++ explicit的用法

在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性

2015-09-12 17:06:38 967

转载 进程/线程同步——Critical Section,Mutex,Semaphore,Event区别

临界区(Critical Section)    保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进 入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共 享资源的目的。       临界区

2015-09-12 16:40:03 522

转载 C++虚析构函数、纯虚析构函数

虚析构函数析构函数的工作方式是:最底层的派生类(most derived class)的析构函数最先被调用,然后调用每一个基类的析构函数。因为在C++中,当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。然而,基类部分很可能已被销毁,这就导致了一个古怪的“部分析构”对象,这是一个泄漏资源。排除这个

2015-09-12 16:34:21 327

转载 C++学习笔记 -- 虚析构函数与纯虚析构函数

开始学C++了,所以又重拾以前学习过的相关概念…析构函数是当一个对象的生命周期结束时,会自动执行析构函数。析构函数的定义:#ifndef __A_H__#define __A_H__class A{public: A(void); A(int a, int b); ~A(void); //析构函数private:

2015-09-12 16:27:58 322

转载 C++父类,不能缺的虚析构函数

规则:如果一个类有可能被继承,那么请为它加上一个虚的析构函数,即使这个析构函数一行代码也没有。 0. 引子    为什么这样说?先看一个例子。先定义3个类: class CBase{public:    long m;    long n;    long o;    CBase()    {     

2015-09-12 16:10:12 593

转载 c++ 析构函数为虚函数的问题

昨天去XX公司面试,面试官问了一个关于C++类析构函数为虚函数时,如果是父类的指针用子类来new,如果发生析构时,析构函数是virtual与不是virtual有什么区别。当时答的不好,回来总结了一下,在机器上实现了一遍,终于搞明白了。记录下来,以后遇到这种情况自己一定不要犯错了一、先看第一种最简单的情况吧,教科书上教的,析构函数不是virtual,正常定义一个子类对象 class st

2015-09-12 15:34:50 578

转载 C++:构造函数和析构函数能否为虚函数

C++:构造函数和析构函数能否为虚函数?简单回答是:构造函数不能为虚函数,而析构函数可以且常常是虚函数。(1) 构造函数不能为虚函数让我们来看看大牛C++之父 Bjarne Stroustrup 在《The C++ Programming Language》里是怎么说的:To construct an object, a constructor needs the exact ty

2015-09-12 15:12:59 1614

转载 构造函数为什么不能是虚函数

本文的主题是构造函数不能是虚函数,首先这不需要你用脑子去记,因为当你写出来虚构造函数时,编译器是能检查出来的。本文的目的是为什么构造函数不能是虚函数。首先,先看一段错误的代码,下面的代码是通不过编译阶段的。1 class A{2 public:3 virtual A(){4 this->value = 0;5 }6 private:

2015-09-12 15:05:36 456

转载 const

1.const与define两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。(小注:可以多次声明,但只能定义一次)2.》》const与指针和引用(a)const

2015-09-11 23:13:06 278

转载 C++的const类成员函数

我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误。例如,const char blank = ‘’;blank = ‘\n’; // 错误        面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据成员。若要修改类对象,应调用公有成员函数来完成。为了保证const对象的常量性,编译器须区分不安全与安全的成员函数(即区

2015-09-11 22:05:02 353

转载 C++函数中const形参与非const形参

在程序设计中我们会经常调用函数,调用函数就会涉及参数的问题,那么在形参列表中const形参与非const形参对传递过来的实参有什么要求呢?先来看一个简单的例子:#include #include using namespace std;void print_str(const string s){ cout<<s<<endl;}int main()

2015-09-11 21:50:33 11581 1

转载 关于i++和++i以及左值,右值

原本一直对i++和++i的区别不是很在意,觉得i++就是先用了i的值(用于赋值之类的操作),再i自加1.   而++i就是把i的值先自加1再用作其他操作.         很多人都问类似于j=++i+++i+i;之类的题目,个人觉得除了有些变态的学校的变态的考试会考.其他根本用不到.如果你在实际写代码的时候这样写,不但是给自己找麻烦,以后代码维护时,你也会被人在心里诅咒很久的....

2015-09-11 21:42:58 487

转载 左值与右值

左值就是那些能够出现在赋值符号左边的东西。   右值就是那些可以出现赋值符号右边的东西。   例如:         a = b + 25;      a就是一个左值,因为它标识了一个可以存储结果值的地点,b + 25是个右值,因为它指定了一个值。但是它们可以互换吗? b + 25 = a; 原先用作左值的a此时也可以当作右值,因为每个位置都包含一个值。然而,b + 25不

2015-09-11 21:36:30 389

转载 C++类内存分布

书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来:  先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到所有相关类的内存布局,如

2015-09-11 14:44:08 222

转载 不常见的数据类型---结构体,指针,全局数据

本章主要介绍三种“不常见”的数据类型,分别是结构体,指针和全局数据,其实我觉得这三种数据类型还是很常见的,不太认同本书将之分类成“不常见”。 第一部分:结构体结构体好比是一个团体,它将一些相关的数据放在一起,比如对于student而言,属性可能包括name,age,sex,height和weight等,因此可以这样声明一个学生的结构体:struct Student{    

2015-09-11 14:37:06 824

转载 形参,实参,传值,传地址,传引用

形式参数和实际参数 函数的参数分为形参和实参两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。函数的形参和实参具有以下特点: 1. 形参变量只有在被调用时才分配内存单元,在调

2015-09-11 10:05:11 2827

空空如也

空空如也

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

TA关注的人

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