
C、C++
文章平均质量分 73
jiqiujia
这个作者很懒,什么都没留下…
展开
-
【转载】交换两个字符串数据
原文地址:【转载】交换两个字符串数据作者:灰太狼下面的内容来自转载,不过很有参考价值:交换两个字符串数据。一:字符指针int main(){ void charsort2(char ** ,char **); char * s1="abc"; char * s2="baihe"; charsort2 (&s1,&s2); c转载 2014-01-06 16:29:35 · 848 阅读 · 0 评论 -
Effective C++ 读书笔记
EffectiveC++读书笔记条款1:尽量用const和inline而不用#define1.为方便调试,最好使用常量注意:常量定义一般放在头文件中,可将指针和指针所指的类型都定义成const,如const char * const authorName = ScottMeyers;类中常量通常定义为静态成员, 而且需要先声明后定义可以在声明时或定义时赋值,也可使用借用enum转载 2014-01-06 16:34:02 · 588 阅读 · 0 评论 -
gcc和g++的区别
我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确,如果再遇上个extern"C",分歧就更多了,这里我想作个了结,毕竟知识的目的是令人更清醒,而不是更糊涂。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为转载 2014-01-06 16:36:09 · 580 阅读 · 0 评论 -
解析extern
1、声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i; void main(){} //B.cppint i; 这两个转载 2014-01-06 16:35:30 · 505 阅读 · 0 评论 -
sprintf函数的用法
本文链接:http://blog.pfan.cn/colormoon/12763.html复制链接自《优快云社区电子杂志——C/C++杂志》在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf有用得多转载 2014-01-06 16:29:42 · 560 阅读 · 0 评论 -
sprintf,你知道多少?
选自《优快云 社区电子杂志——C/C++杂志》http://emag.youkuaiyun.com 2005 年1 月总第1 期 - 93 -本文作者:steedhorse(晨星)printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗?在将各种类型的数据构造成转载 2014-01-06 16:30:36 · 369 阅读 · 0 评论 -
【转】C/C++中的时序点和副作用
C++中的时序点(SeqencePoint)和副作用(Side-effect)是两个相关的概念,了解了副作用以后能更好的理解C++上的另一个概念--时序点。而这两点的理解对于debug和消除代码的歧义(ambiguity)帮助还是比较大的。引子: 上周在完成一个类时,对这个类进行了运算符的重载。为了让运算符的重载更加的Intuitive,我在测试代码中写出了这样的语句: i =转载 2014-01-06 16:30:23 · 553 阅读 · 0 评论 -
你所不知道的new和delete
http://www.cnblogs.com/sura/archive/2012/07/03/2575448.html原创 2014-05-05 16:13:30 · 115 阅读 · 0 评论 -
类数据成员的访问
#include#include #includeusing namespace std;class C { public: int a; char b; static int c; };int C::c = 2;int main(){ C c; printf("&C::c = %p, &c.c = %p\n", &C::c, &c.c); cout << &C::c <<原创 2014-04-03 22:56:20 · 203 阅读 · 0 评论 -
详解_C语言可变参数_va_list和_vsnprintf及printf实现
C语言的变长参数在平时做开发时很少会在自己设计的接口中用到,但我们最常用的接口printf就是使用的变长参数接口,在感受到printf强大的魅力的同时,是否想挖据一下到底printf是如何实现的呢?这里我们一起来挖掘一下C语言变长参数的奥秘。先考虑这样一个问题:如果我们不使用C标准库(libc)中提供的Facilities,我们自己是否可以实现拥有变长参数的函数呢?我们不妨试试。一转载 2014-04-29 12:10:19 · 652 阅读 · 0 评论 -
虚继承与空基类优化
首先介绍一下虚继承吧。在虚继承下,对给定虚基类,无论该类在派生层次中作为虚基类出现多少次,只继承一个共享的基类子对象。共享的基类子对象称为虚基类比如说,C++中的IO库类就是这样子的,istream和ostream虚继承于ios类,iostream类继承于istream类和ostream类,即class istream : public virtual class ios{...}原创 2014-04-01 22:13:14 · 1165 阅读 · 0 评论 -
More Effective C++读书笔记
条款1:指针与引用的区别二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象在以下情况使用引用:总是指向一个对象且一旦指向一个对象之后就不会改变指向;重载某个操作符时,使用指针会造转载 2014-01-06 16:34:04 · 425 阅读 · 0 评论 -
fprintf、fscanf读写乱码的问题
前几天写类linux文件系统的时候,被这个搞死了,今天终于弄懂了这是cpp文件#include #include #include #include using namespace std;char ch[250];struct s{ short a, b;};int main(){ FILE *file = fopen("test.txt", "wt+"); s原创 2014-02-26 00:36:08 · 13799 阅读 · 2 评论 -
爱因斯坦难题C++解法
原文地址:爱因斯坦难题C++解法作者:虚空使者 爱因斯坦难题C++解法传说下面是爱因斯坦在20世纪初出的一道测试题。他说世界上有99%的人回答不出这道题,看看你是否属于另外的1%?题目如下:前提: 1 有五栋五种颜色的房子 2 每一位房子的主人国籍都不同 3 这五个人每人只喝一种饮料,只抽一种牌子的香烟,只养一种宠物 4 没有人有相同的宠物,抽相同牌子的香烟,喝相同的饮料转载 2014-01-06 16:29:37 · 932 阅读 · 0 评论 -
fstream用法
原文地址:fstream用法作者:chunqiu学习! 大多数 C++ 程序员都熟悉不止一个文件 I/O 库。首先是传统的 Unix 风格的库,它由一些低级函数如 read() 和open()组成。其次是 ANSI C 的 库,它包含fopen() 和 fread()等函数。其它的还有一些具备所有权的库或框架,比如 MFC,它有很多自己的文件处理类。 这些库一般都很难跨平台使用。更糟转载 2014-01-06 16:29:39 · 609 阅读 · 0 评论 -
strtok and strtok_s
原文地址:and strtok_s">strtok and strtok_s作者:cathy语言的运行库为了支持多线程特性,必须做出一些改进。一种改进的办法就是修改所有的线程不安全的函数的参数列表,改成某种线程安全的版本。比如MSVC的CRT就提供了线程安全版本的strtok()函数:strtok_s,它们的原型如下:char *strtok(char *strToken, const c转载 2014-01-06 16:29:44 · 877 阅读 · 0 评论 -
C_C++的union的使用总结 (转…
原文地址:(转)">C_C++的union的使用总结 (转)作者:Olim前言 熟悉C的程序员都知道union(联合体)的用法,利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间。当访问其内成员时可用"."和"->"来直接访问。在C++出现后,它继承了union并保留了其在C中的特性。但是在C++中的union又有了新的扩展,这需要大家了解,要不然你会感到费解和迷惑。转载 2014-01-06 16:30:30 · 1099 阅读 · 0 评论 -
C++学习【原创】unique和uni…
原文地址:C++学习【原创】unique和unique_copy函数的应用作者:孙宇洪unique函数的功能是:去除相邻的重复元素(只保留一个)。函数参数:unique(first,last,compare);//first为容器的首迭代器,last为容器的末迭代器,compare为比较函数(可略写)。注意:unique函数也并非是真正的删除了元素,一般要与erase成员函数 或resiz转载 2014-01-06 16:30:38 · 720 阅读 · 0 评论 -
vs2008打开vs2010工程
原文地址:vs2008打开vs2010工程作者:llninan如何使用VS2008打开VS2010的解决方案[转]公司大部分人还在使用VS2008做2.0的项目,想使用VS2010尝尝鲜,但是也用不到4.0的库,想着以后用VS2010做了改动,VS2010仍然可以用,就研究查看了一下.SLN文件,发现VS2008的SLN文件的开头会有如下代码:view s转载 2014-01-06 16:31:26 · 525 阅读 · 0 评论 -
利用二级指针删除单向链表
Linus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-levelcoding。下面是Linus的教学原文及翻译——“At the opposite end of the spectrum,I actually wish more people understo原创 2014-01-06 16:33:34 · 587 阅读 · 0 评论 -
通过引用计数解决野指针的问题
C/C++代码中,野指针问题历来已久,当然,大家都知道new/delete要成对出现: A *p = new A(); delete p; p = NULL; 然而现实中却并不是总是如此简单,考虑如下例子: class A { public: C(){} virtual~C() {} }; class B {原创 2014-01-06 16:33:36 · 140 阅读 · 0 评论 -
C/C++除法实现方式及负数取模详解
一、下面的题目你能全做对吗?1.7/4=?2.7/(-4)=?3.7%4=?4.7%(-4)=?5.(-7)/4=?6.(-7)%4=?7.(-7)/(unsigned)4=?答案:1-133-1-31073741822如过你全部答对,你可以无视后面的内容…… 二、除法的取整分类除法的取整原创 2014-01-06 16:33:51 · 595 阅读 · 0 评论 -
vc6.0Error spawning cl.exe错误的解决方法
打开vc界面点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、 LibraryFiles、Source Files”的路径。 如果你是按照初始路径安装vc6.0的,路径应为: executatble files: C:\Program Files(86)\Micro原创 2014-01-06 16:35:25 · 859 阅读 · 0 评论 -
C、C++笔记
1.今天用vc6.0的时候定义变量发生了很奇怪的错误:error C2275: 'wchar_t' : illegal use of this type as an expression百思不得姐啊,后来查了一下才知道,C语言不允许随时定义变量,所有定义的变量都只能放在函数开头,这也是C和C++的一个重要区别! 然后还有个乱码问题,vc6.0预编译环境的设置只添加了UNICODE,在工原创 2014-01-06 16:35:27 · 714 阅读 · 0 评论