
c/c++
文章平均质量分 63
tg5156
这个作者很懒,什么都没留下…
展开
-
using namespace std
<br /> 所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。<br />一、<iostream>与<iostream.h>的区别<br /> <iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。<br /> 后缀为.h的头文件C++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间转载 2010-07-18 12:44:00 · 551 阅读 · 0 评论 -
初始化列表
构造函数初始化列表以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号中的初始化式。构造函数初始化式只在构造函数的定义中而不是声明中指定。struct foo{ string name; int id; foo(string s, int i):name(s), id(i){} ; // 初始化列表};用class和struct关键字定义转载 2012-07-25 15:48:37 · 507 阅读 · 0 评论 -
struct
/* 这种写法是最要命的,但是它却可以通过编译,最后的foo是结构体的实例 */struct foo{ int foo;}foo;/* 注意struct后面那个标签可以不写,最后的bar是匿名结构体的别名 */typedef struct{ int转载 2011-08-24 19:15:10 · 1131 阅读 · 0 评论 -
typedef
typedef char * pchar;const pchar p = "Hello!";p的类型是什么?如果你以为是 const char * 类型,那你就错了!p的真正类型是 char * const,也就是说,const pchar p 与 char * co转载 2011-08-24 19:08:24 · 515 阅读 · 0 评论 -
调用约定与修饰名约定
几乎每一种语言都有函数的概念,而作为函数就有参数,一般的说,参数的传递是通过堆栈来实现的(堆栈是一种先入后出的结构,使用Push压入,使用Pop弹出,Push和Pop必须成对使用),不过有两种不同的处理方法。 一种方法是按原顺序把参数压入堆栈,然后使用CALL指令呼叫函数的转载 2011-08-24 19:35:23 · 618 阅读 · 0 评论 -
#define
<br />语法一:#define 标识符 被标识符代表的字符串<br />语法二:#define 标识符[(参数1, ....., 参数n)] 被标识符代表的字符串<br /> <br />使用#define定义时,可以用斜杠("/")续行。<br />#define add1(x, y) (x + y)<br />也可以表示成:<br />#define add1(x, y) /<br />(x + y)<br /> <br />在“被标识符代表的字符串”中出现的形参将在使用时被实参替代,就象写函数一样原创 2011-05-18 14:47:00 · 660 阅读 · 0 评论 -
指针
<br />一维数组指针<br /> int a[10], *ptr;<br /> ptr=a;或ptr=&a[0];<br /> ptr+n与a+n表示数组元素a[n]的地址,即&a[n]。<br /> *(ptr+n)和*(a+n)等效于a[n]。<br /> ptr[n]等效于*(ptr+n)。<br />二维数组指针<br /> int a[3][4], *ptr;<br /> 把二维数组看成n行一维数组,a[n]就是第n行的首地址。将每行的首地址传递给指针变量,行中的其余元素均可以由原创 2011-05-18 14:22:00 · 643 阅读 · 0 评论 -
static
<br />局部静态变量<br /> 在C/C++中,局部变量按照存储形式可分为三种auto、static、register。与auto类型(普通)局部变量相比,static局部变量有三点不同:<br /> 1.存储空间分配不同。<br /> auto类型分配在栈上,属于动态存储类别,占动态存储区空间,函数调用结束后自动释放,而static分配在静态存储区,在程序整个运行期间都不释放。两者之间的作用域相同,但生存期不同。<br /> 2.static局部变量在所处模块在初次运行时进行初始化工作,且只原创 2011-05-18 14:15:00 · 367 阅读 · 0 评论 -
static、const和static const以及它们的初始化
<br />原文地址:http://blog.sina.com.cn/s/blog_60be7ec80100gzhm.html <br /> <br />const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。<br />static表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的静态成员函数,成员变量。一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。<br />在C+转载 2011-05-13 16:17:00 · 642 阅读 · 0 评论 -
C++ explict
<br />C++ explicit关键字的作用主要是用来修饰类的构造函数,表明该构造函数是显式的,禁止单参数构造函数的隐式转换。<br />如果C++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:<br />class MyClass<br />{<br />public:<br /> MyClass(int num);<br />}<br />MyClass obj = 10; //ok, convert int to My转载 2010-11-18 15:18:00 · 1998 阅读 · 0 评论 -
new & delete
<br />在C++ Primer中提到,new操作有两个版本:<br /> T * t = new T(); // 分配单个T对象的指针<br /> T * t = new T[8]; // 分配特定维数和类型的数组<br />注意new后面的符号:<br /> () 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量。<br /> [] 分配这种类型的N个大小的内存空间,并用默认构造函数来初始化这些变量。<br />关键字new的用法如下:<br /> new <数据类型>[[数转载 2010-11-29 11:37:00 · 378 阅读 · 0 评论 -
const
<br />常量是一种标识符,它的值在运行期间恒定不变。C语言用#define来定义常量(称为宏常量)。C++除了#define外还可以用const来定义常量(称为const常量)。<br />const int a = 1; // 定义了一个int类型的const常数变量a<br />const对于指针仍然起作用,但有两点要十分注意,因为下面两个问题很容易混淆!<br />例A:<br />#include iostream<br />using namespace std;<br />void main转载 2010-11-28 20:51:00 · 615 阅读 · 0 评论 -
C写入文件换行0D0A变成0D0D0A
<br />将fopen(filename,"a+")换成fopen(filename,"a+b")问题就解决了。转载 2010-06-14 14:21:00 · 3363 阅读 · 0 评论 -
printbit
<br />#include limits.h<br />#include stdlib.h<br />#include stdio.h<br />void PRINTBIT(unsigned int number) /* PRINTBIT用于把一无符号整数翻译成二进制串 */<br />{<br />unsigned int i;<br />unsigned int bits = sizeof(int) * CHAR_BIT; /* bits中存放执行环境中int类型对象所占字位数 */<br />uns转载 2010-07-28 17:34:00 · 1061 阅读 · 0 评论 -
条款15:让operator=返回*this的引用
c++的设计者bjarne stroustrup下了很大的功夫想使用户自定义类型尽可能地和固定类型的工作方式相似。这就是为什么你可以重载运算符,写类型转换函数(见条款m5),控制赋值和拷贝构造函数,等等。他做了这么多努力,那你最少也该继续做下去。让我们看看赋值。用固定类型的情况下,赋值操作可以象下面这样链起来:int w, x, y, z;w = x = y = z = 0;所原创 2012-07-25 17:29:26 · 746 阅读 · 0 评论