文章分类 - c++
c++ 学习的点点滴滴
摘要:Visual C++ Compiler Options可以指定的Calling Convention有 3种: /Gd /Gr /Gz 这三个参数决定了: 1.函数参数以何种顺序入栈,右到左还是左到右。 2.在函数运行完后,是调用函数还是被调用函数清理入栈的参数。 3.在编译时函数名字是如何转换的。 下面我们分别详细介绍: 1./Gd 这是编译器默认的转换模式,对一般函数使用 C的函数调用转换方式__cdecl,但是对于C++ 成员函数和前面修饰了__stdcall __fastcall的函数除外。 2./Gr 对于一般函数使用__fastcall函数调用转换方式,所有使...
阅读全文
摘要:C++中对于头文件的应用是一个比较复杂的步骤,其中有很多比较重要的内容值得我们去不断的学习。在这里我们先来为大家总结一下C++头文件中的各种类型,以方便大家将来的应用。C++头文件之C、传统 C++ #include<assert.h>//设定插入点 #include<ctype.h>//字符处理 #include<errno.h>//定义错误码 #include<float.h>//浮点数处理 #include<fstream.h> //文件输入/输出 #include<iomanip.h> //参数化输入/输出 #in
阅读全文
摘要:1.已知strcpy 函数的原型是:char *strcpy(char *strDest, const char *strSrc);其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy答案:char *strcpy(char *strDest, const char *strSrc){if ( strDest == NULL || strSrc == NULL)return NULL ;if ( strDest == strSrc)return strDest ;char *tempptr = strDest ;while( (
阅读全文
摘要:1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。4、new 和 malloc效率比较new 有三个字母, malloc有六个字母new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。一:new delete 是运算符,m
阅读全文
摘要:前两节介绍了C++的IO流类库,标准设备IO操作流中部分预定义流对象的成员函数以及IO格式控制。那今天我将继续介绍关于C++中的流操作内容——文件IO操作流fstream。并会着重讲解C++是如何对文件进行操作的。 文件指存放在外部介质上的数据的集合。大家都知道操作系统是以文件为单位来对数据进行管理的。因此如果你要查找外部介质的数据,则先要按文件名找到指定文件,然后再从文件中读取数据,如果要把数据存入外部介质中,如果没有该文件,则先要建立文件,再向它输入数据。由于文件的内容千变万化,大小各不相同,为了统一处理,在C++中用文件流的形式来处理,文件流是以外存文件为输入输出对象的数据流。输出文件.
阅读全文
摘要:C++ string 详解任何人对本文进行引用都要标明作者是Nicolai M.Josuttis///////////////////////////////////////////////////////////////////////////////////C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触 perl, php, 和Shell脚本以后,开始
阅读全文
摘要:最大的区别就是C风格的字符串是静态的,不可以动态变化,使用极为麻烦。而C++的std::string类型动态管理,非常方便。C风格字符串和char数组是不一样的,看下面两种定义:char carr1 = {'a', 'b', 'c'};char carr2 = {'a', 'b', 'c', '\0'};看上面,carr2可以说成是C风格字符串,carr1就不是C风格字符串,C风格字符串必须要以'\0'结尾的。string类是标准库的类,并不是内置类型,标准库就像是我
阅读全文
摘要:http://www.cppreference.com/operator_precedence.htmlPrecedenceOperatorDescriptionExampleAssociativity1::Scoping operatorClass::age = 2;none2()[]->.++--Grouping operatorArray accessMember access from a pointerMember access from an objectPost-incrementPost-decrement(a + b) / 4;array[4] = 2;ptr->
阅读全文
摘要:函数原型:char *strtok(char *s, const char *delim);Function:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。Description:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时 则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。#include <iostream> #include
阅读全文
摘要:const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.c_str()就是把string类对象转换成和c兼容的char *类型。这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针比如:最好不要这样:char* c;string s="1234";c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理应该这样
阅读全文
摘要:const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。char * const cp; ( * 读成 pointer to )cp is a const pointer to charconst char * p;p is a pointer to const char;char const * p;同上因为C++里面没有const*的运算符,所以con
阅读全文