
C/C++基础知识
zdplife
千里之行始于足下,一步一个脚印,终会成功
展开
-
C++中引用的详解
:(1)引用必须用同类型的对象初始化,且只能初始化一次,引用不能为空。(2)不能定义引用类型的引用。(3)非const引用只能绑定到与该引用相同的类型。Const引用可以绑定到不同类型但相关的类型的对象或者右值。(4)不能定义void类型的引用。(5)指针和引用作为函数参数时候,都是传地址调用。(6)const 引用传递参数,不仅能够减少空间消耗,还可以避免“对象切割”在子原创 2016-03-13 17:05:56 · 476 阅读 · 0 评论 -
C/C++中的函数指针
: int f(int ); int (*pf)(int) = &f;---pf是函数指针,指向函数f(1)函数指针和普通指针一样,必须先被初始化为指向某个函数的指针,然后才能使用;(2)函数指针与所指向的函数必须返回类型和形参都精确匹配;(3)初始化的时候,&是可选的,因为函数名在原创 2016-03-20 23:15:10 · 522 阅读 · 0 评论 -
C++中的标准IO库详解
: (1)IO类之间的继承关系图如下:(2)IO类型有三个独立的头文件,iostream头文件定义了控制窗口的类型,fstream头文件定义了读写已命名文件的类型,sstream头文件定义的类型则用于读写存储在内存中的string对象;(3)对IO对象使用继承有个重要的含义:如果函数有基类类型的引用形参时,可以给函数传递其派生类型的对象;(4)为了支持国际字符wchar_t原创 2016-03-21 11:09:41 · 2720 阅读 · 0 评论 -
C++/C中的预处理命令;
分析>:预编译又称为预处理 ,是做些代码文本的替换工作。处理 # 开头的指令 , 比如拷贝 #include包含的文件代码, #define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段,主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。c/c++编译系统在对程序进行通常的编译之前,先进行预处理。 c 提供的预处理原创 2016-03-12 12:10:21 · 2690 阅读 · 0 评论 -
C++中输入输出缓冲区的刷新
分析>:未刷新缓存区造成输出停留在缓存区中,如果系统崩溃,将会导致程序对缓存区的位置的错误判断,所以要定时刷新缓存区,以下是缓存区刷新的几种方法:(1)程序正常结束。作为main返回工作的一部分,将清空所有的输出缓冲区。(2)在一些不确定的时候,缓冲区可能已经满了,在这种情况下,缓冲区将会在写下一个值之前刷新。(3)用操纵符显式地刷新缓冲区,如用endl、ends、flush。例如:原创 2016-03-12 11:54:01 · 4071 阅读 · 0 评论 -
C++中的main函数
(1)一个程序只能可以包含一个或者多个函数,但只能必须有一个命名的main函数;(2)main函数是唯一被操作系统显式调用的函数;(3)main函数的返回类型必须为int型,返回0值表示执行成功,返回其他值表明有错误 出现,每个操作系统的具体返回内容不一样;(4)C++容许主函数main()有或者没有参数列表,如果有参数,一般是如下形式:int main(int argc,原创 2016-03-12 10:55:06 · 1117 阅读 · 0 评论 -
C/C++中的内置基本类型
(1)内置基本类型包括:整数、浮点数、字符、布尔类型、void、枚举;(2)其中整数、字符、布尔类型都称为整型,整数又包括:short、int、long;(3)字符类型有两种:char和wchar_t,char用于表示基本字符集,而wchar_t用于表示扩展字符集,比如汉子或日 文;(4)除bool类型外,整型可以带符号,也可以不带符号;(5)浮点型包括:floa原创 2016-03-13 10:56:53 · 3192 阅读 · 0 评论 -
64位和32位编译环境下不同数据类型长度的区别
关于64位和32位编译环境下不同数据类型长度有以下几条规则:(1)char类型一般是8bit,但ANSI C里没有硬性规定其长度,某些嵌入式编译器可能是16bit(2)short和long类型的长度不相同(3)int类型通常同具体机器的物理字长相同(4)short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同自由确定,但是shor原创 2016-03-13 12:19:04 · 1445 阅读 · 0 评论 -
变量和函数的作用域、链接属性、存储范围
(1)作用域: 编译器可以有4种不同类型的作用域:文件作用域、函数、代码块、原型作用域: 代码块作用域:(block scope)用{。。。。。}括起来的部分; 文件作用域:任何在代码块外部声明的标示符都具有文件作用域;原创 2016-03-13 13:20:44 · 1032 阅读 · 0 评论 -
关键字const的详解
(1)const变量不是常数,是一个变量(左值),只是你不能修改它;(2)在定义该const变量时,必须需要对它进行初始化;(3)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;(4)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;(5)对于类的成员函数,若指定其为const类型,则原创 2016-03-13 15:24:04 · 580 阅读 · 0 评论 -
C++中的重载函数、重载函数匹配与实参转换
: 一、重载函数:(1)出现在相同作用域两个函数,如果具有相同的名字而形参表不同,则称为重载函数;(2)局部声明一个函数则该函数将屏蔽而不是重载最外层作用域中声明的同名函数,在c++中,名字查找发生在类型检查之前,所以只要名字相同便进行屏蔽;(3)如两个函数的形参表完全相同,但返回类型不同,则第二个声明时错误的;(4)const形参和非const形参的声明是等价的,因为它们传递原创 2016-03-20 15:38:10 · 2439 阅读 · 0 评论 -
C++中的类成员函数
:将自己觉得类成员函数中需要注意的地方总结成以下几点:(1)编译器隐式的将类内定义的成员函数当作内联函数;(2)每个成员函数都有一个额外的、隐含的this指针,在调用成员函数时,参数this初始化为调用函数的对象的地址,在成员函数形参表中显式包含this指针是非法的,但是在函数体中可以显式包含。(3)常成员函数实质就是this指针是const的。所以const对象只能调用其const成原创 2016-03-20 09:55:37 · 552 阅读 · 0 评论 -
C++中string类详解
(1)string类型的构造函数:string s定义一个空的string类型(默认构造函数)string s(cp)用cp(c风格的字符串)初始化string对象string s(s1)用string对象s1初始化sstring s(n,’c’)将s初始化为’c’原创 2016-03-14 19:48:46 · 1267 阅读 · 2 评论 -
C++中的操作符属性
C++中的操作符属性列表如下: 优先级名称符号左值/右值结合性说明1全局作用域::左左C++类作用域::左左C++命名空间::原创 2016-03-18 12:34:42 · 976 阅读 · 0 评论 -
C++中指针与数组的详解
数组:(1)静态数组的维数必须是大于等于1的常量表达式;(2)在定义静态数组时,如果初始化列表列出元素的一部分,那么剩余元素用值初始化(内置类型被初始化为0,类类型用其默认构造函数进行初始化);如果无初始化列表,那么在函数内部定义的数组元素无初始化,在函数外部定义的数组用值初始化。(3)静态字符数组既可以用花括号括起来的初始化列表进行初始化,还可以用字符串字面值进行赋值初始化,下述两个原创 2016-03-17 18:33:12 · 1195 阅读 · 0 评论 -
C++中的类型转换规则
:任何一个操作符在运算之前其操作数的类型必须一致,如果不一致必须进行类型转换,对不同类型之间的转换规则总结如下:(1)整型提升: 在算术运算中,对于所有比int型小的整型,包括char,signed char,unsigned char,short,unsigned short,如果该类型所有可能值都包含在int内,它们就被提升为int,否则将被提升为unsigned int。也就是在计原创 2016-03-18 13:20:50 · 1955 阅读 · 0 评论 -
C++中四大语句总结(while、for、if、switch)
(1)if语句: 1)bool类型的判断:if(flag)/if(!flag); 整数类型的判断:if(value==0)/if(value!=0)/if(value>=0); 浮点数类型的判断:if(x>=0)/if(x 指针变量的判断:if(p==NULL)/if(p!=NULL) 2)写程序的时候要特别原创 2016-03-18 22:18:48 · 5276 阅读 · 0 评论 -
C++中的异常处理
:通过异常我们可以将异常的检测与问题的解决分离,这样程序的问题检测部分可以不必了解如何处理这些问 题,C++提供了异常处理机制,将异常处理机制知识点总结如下:一、异常处理的基本概念:(1)throw引发异常条件,try语句块以try关键字开始,并以一个或者多个catch关键字结束,catch必须紧跟在try后面,其中在try语句块中声明的变量是局部变量,不能在try语句块外面使用原创 2016-03-19 11:17:46 · 549 阅读 · 0 评论 -
C++中的函数知识点详解
一、函数声明:(1)函数声明由函数返回类型、函数名和形参列表组成,这三个元素被称为函数原型;(2)如果函数定义和函数声明只有返回类型不一致,编译器会出错,属于同一声明;(3)函数声明中的形参名会被忽略;(4)函数一般在头文件中声明,然后在源文件中进行定义;(5)如果声明两个函数void fun(inta)与void fun(const int a),会发生编译错误,认为是重复声原创 2016-03-19 16:27:59 · 1057 阅读 · 0 评论 -
C语言中可变形参列表
分析:(1)可变形参使用省略号表示,使用了C语言中的宏实现的,定义在头文件中, 该头文件中声明了一个类型va_list和三个宏va_start,va_arg,va_end。(2)可变形参列表函数的声明: float average(int n_value,…);--省略号表示此处传递数量和类型未定的参数(3)以下是通过可变形参列表求n_value个数字的平均原创 2016-03-19 17:15:49 · 1288 阅读 · 0 评论 -
C++中的内联函数
:(1)内联函数的使用是直接将程序在调用出展开,可以避免函数调用的开销;(2)大多数编译器都不支持内联函数的递归;(3)内联函数可以在程序中定义多次,所以应该将内联函数定义在头文件中,这样确保在调用时所使用的定义是相同的;(4)虚函数也可以形式上定义为内联函数,但是编译器会选择是否将其真的 当作内联函数,一般虚函数是不能当作内联函数的,因为虚函数要实现动态 绑定,在运行时才调原创 2016-03-19 17:44:58 · 702 阅读 · 0 评论 -
C++头文件中应该包含的内容
头文件可以保证所有使用给定实体的同一声明,当声明需要修改时,只需要修改头文件修改就可以,使用预处理器可以避免文件的重复包含如下所示:#ifndef ZHANG_H#define ZHANG_H.......#endifC++中头文件应该包含内容如下:(1)类的定义、extern变量、函数的声明;(2)在编译时已知的const对象的定义(用常量表达式初始化),因为当原创 2016-03-13 18:15:43 · 3575 阅读 · 0 评论