c++
文章平均质量分 80
橙子cmr
一只还在学习的菜鸟
展开
-
c++面试题2.0
15、如何引用一个已经定义过的全局变量? 答:extern。可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错 16、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的转载 2016-10-08 22:31:51 · 191 阅读 · 0 评论 -
字符串格式化 sprintf 2.0
四、连接字符串sprintf 的格式控制串中既然可以插入各种东西,并最终把它们”连成一串”,自然也就能够连接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时在它们中间插入别的内容,总之非常灵活)。比如: char* who = “I”; char* whom = “CSDN”; sprintf(s, “%s love %s.”, who, w转载 2016-11-09 19:47:44 · 271 阅读 · 0 评论 -
c++知识复习8.0
8.sizeof和strlen的区别? 1)sizeof是在‘编译’时就能够计算出大小,而strlen是在‘运行’时才能计算出大小。 2)sizeof是计算变量在内存中所占的内存大小(字节数),而strlen是计算字符串的长度,遇到'\0'结束。 3)若是数组,则传给sizeof不会退化,而传给strlen就会退化为指针。 4)sizeof可以计算类型,或者变量的大小,而strlen的原创 2016-10-06 19:29:40 · 194 阅读 · 0 评论 -
c++面试题1.0
static有什么用途?(请至少说明两种) 1).限制变量的作用域,全局变量加上static之后全局变量的作用域是定义该变量的单个文件,而不加static的全局变量可以被同一个工程中的其他文件引用 2).设置变量的存储域。局部变量加上static之后变量的存储区由栈变为全局区(也可以成为静态区) 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,转载 2016-10-07 15:25:38 · 197 阅读 · 0 评论 -
C++ 类继承
通过继承完成的工作:可以在已有类的基础上添加新功能; 可以给类添加数据; 可以修改类方法的行为。 例1:string类中有一个将const char *作为参数的构造函数,使得C-风格字符串初始化string类对象时,将自动调用这个构造函数,在头文件中包含string类即可。公有派生:派生类对象包含基类对象 使用公有派生,基类的私有成员将成为派生类的公有成员;基类的私有部分也成为派生类的一转载 2016-11-12 23:13:47 · 275 阅读 · 0 评论 -
c++小知识点3.0
31. 在C++中,”=”是赋值操作,而”==”是表示相等的意思.32. const定义的常量不可修改,但可以用其值来来计算.int i=1; const int ic=i; cout << ic+1 << endl;33. int 的指针与int不是同一数据类型,例: int i=15; int *i=i; //这是错误的.34. 在bool类型中,0为false,1为true3原创 2016-11-29 16:48:07 · 308 阅读 · 0 评论 -
c++小知识点4.0
46. 函数中,如果加入inline(内联)则表示,该函数在编译时就被调用; 如果没有加入,则表示函数在运行时才被调用.47. A.要在使用前先声明,否则函数将出错. B.函数参数表不能省略,如果没有任何参数,可以留空或用void代替.如.int fork(void) C.参数表中不能出现同名参数. D.数组不能作为返回值.如int [] foobar(); //错误 E.C++中,数原创 2016-11-30 17:11:05 · 244 阅读 · 0 评论 -
有关类的基础
1.使用类型别名来简化类 Example: class A { public: typedef string::size_type MyType; private: MyType x; }; Tips:类型别名的定义必须出现在其使用之前,例如,下面的的代码为非法的 class A {private: MyType x; //error,转载 2016-11-14 22:16:32 · 203 阅读 · 0 评论 -
c++小知识点5.0
61.delete表达式只能应用在:用new表达式产生的指针上,如上例.62.例如.需要的时候才分配一个字符串,但又不知道该字符串长度时才分配与释放的对象被称为动态分配对象.动态分配的对象被分配在程序的空闲存储区的可用内存池中.程序员用new来创建动态分配对象,用delete来结束时对象的生命周期.63.名字空间namespace表示方法:namespace MySpace{ …. }名字空间原创 2016-12-11 23:33:21 · 229 阅读 · 0 评论 -
c++小知识点6.0
1.作用域操作符’::’有什么用?主要是用来调用全局变量,比如说在void main()的前面定义了int N;而在main中又定义了一个局部变量N,如果直接打印N,则显示的是main中的值;如果加上::,则显示在void main中定义的N的值.(1)全局域和局部域都定义了相同名字的变量a,默认情况下局部变量隐藏全局变量,如果想调用全局变量a,应该这样:“::a”; (2)调用类的静态成员:“类原创 2016-12-14 18:51:40 · 270 阅读 · 0 评论 -
C++类继承2.0
虚函数工作原理:给每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针(虚函数表)。 虚函数表中存储了为类对象进行声明的虚函数的地址 无论类中包含的虚函数是1个还是10个,都只需要在对象中添加1个地址成员,只是表的大小不同而已。 调用函数时,程序将查看存储在对象中的虚函数地址,然后转向相应的函数地址表。 使用虚函数,在内存和执行速度方面的成本:每个对象都将增大,增大量为存储地转载 2016-11-20 23:21:04 · 310 阅读 · 0 评论 -
C++类继承3.0
2.其他类的方法 (1)构造函数 创建新对象,因此不能被继承。(2)析构函数 一定要定义显式析构函数来释放类构造函数使用new分配的所有内存,并完成类对象所需的任何特殊的清理工作。 对于基类,即使它不需要析构函数,也应提供。(3)转换 要将类转换为其他类型,应定义转换函数。 转换函数可以是没有参数的类成员函数,也可以是返回类型被声明为目标类型的类成员函数。(4)按值传递对象与传转载 2016-11-21 19:53:28 · 304 阅读 · 0 评论 -
C++小知识点
1.在C++中,每个程序必须包含一个main()的入口函数,只有这样,这个项目才能运行.2.函数包括:函数名,参数,代码,返回值.3.return 是C++的预定义语句,提供了终止函数的一种方法;return 0表示成功执行正常退出. 4.using namespace std;是指引用C++的标准库.5. C++的4种基本数据类型:整数(int),浮点型(float),字符型(char),布尔原创 2016-11-25 23:23:53 · 235 阅读 · 0 评论 -
c++小知识点2.0
16. 作用域操作符::的作用:(1)全局域和局部域都定义了相同名字的变量a,默认情况下局部变量隐藏全局变量,如果想调用全局变量a,应该这样:“::a”; (2)调用类的静态成员:“类名::静态成员名”; (3)子类中调用父类中被隐藏的成员:“父类名::成员名”;17. C++的关键特征是接口和实现的分离. 接口的概念:是一些”用户可以应用到类对象上的操作”的集合.18. 构造函数与析构原创 2016-11-26 22:59:40 · 232 阅读 · 0 评论 -
c++知识复习1.0
1: 当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针void Func(char a[100]) { cout<< sizeof(a) << endl; // 4 字节而不是100 字节 }2: char *p = “world”; // 注意p 指向常量字符串 p[0] = ‘X’; // 编译器不能发现该错误 指针p 指向常量字符串“world”(原创 2016-09-29 20:12:44 · 289 阅读 · 0 评论 -
c++知识复习7.0
1.static关键字的作用和使用场景?。static的作用——隐藏,变量所有未加static前缀的全局变量和函数都具有全局可见性,假设有两个文件,其中一个文件中定义全局变量a,int a = 10;如果在另一个文件中声明extern int a;则a = 10,在这个文件中可以对其进行使用。但是如果定义的全局变量前加上static,即就是:static int a = 10;则在另一个文件中是不可原创 2016-10-05 22:57:48 · 177 阅读 · 0 评论 -
c++知识复习6.0
2.8 标准输入输出函数printf与scanf 在程序设计中输入输出是不可缺少的内容,因此在C语言中提供了printf与scanf标准函数来满足输入输出要求。需要说明的是,在C++中提供了更方便的输入输出控制,这就是I/O流。但为了满足一些对printf与scanf使用习惯的要求,C++中仍保留了这两个函数。 一、printf函数 格式: printf (格式控制字符串,输出项1,输出项2原创 2016-10-04 23:12:41 · 188 阅读 · 0 评论 -
c++面试题3.0
23、队列和栈有什么区别? 队列先进先出,栈后进先出 24、写出下列代码的输出内容 //#include < stdio.h > int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); } typedef int(FUNC1)(int in); typedef int(转载 2016-10-09 10:54:53 · 272 阅读 · 0 评论 -
c++函数指针1.0
一.简介 C或者C++中最灵活的东东就是指针了,在操作一个对象,或者数组等等,我们常常用到指针,可以给编程带来很多灵活性。但是,指针不仅仅能指向固定数据类型或是对象,指针还可以指向函数,这就是所谓的函数指针。 有了函数指针,我们可以通过指针调用函数,更重要的是我们可以将函数指针作为参数传递给函数,进而可以进行完成注册,回调等等功能,可以说,有了函数指针,我们的程序可以设计的更加灵活了。 二.普原创 2016-10-10 10:02:34 · 233 阅读 · 0 评论 -
c++函数指针2.0
三.成员函数指针 成员函数指针是C++中最麻烦的东东之一,准确的说是非静态成员函数指针。1.静态成员函数指针 静态成员函数指针与普通函数指针一样,我们看一个例子:// C++Test.cpp : 定义控制台应用程序的入口点。 ////#include “stdafx.h” //#include //#include //#include using namespace std;/原创 2016-10-11 21:50:57 · 254 阅读 · 0 评论 -
c++函数指针3.0
那么,既然这个函数是非静态成员函数,那么这个函数支不支持动态绑定呢?换句话说就是,我们声明的函数指针是基类的函数指针,子类覆写了这个函数,那么,用子类对象调用的时候,是调用基类的函数还是子类的函数呢?我们看一个例子:// C++Test.cpp : 定义控制台应用程序的入口点。 ////#include “stdafx.h” //#include //#include //#includ转载 2016-10-12 11:50:53 · 218 阅读 · 0 评论 -
堆和栈的总结
堆和栈的概念 堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点:堆,队列优先,先进先出(FIFO—first in first out)。栈,先进后出(FILO—First-In/Last-Out)。 堆栈空间分配 栈(操作系统):由操作系统自动分配释转载 2016-10-23 22:47:47 · 227 阅读 · 0 评论 -
c++函数指针4.0
而如果我们用回调函数,这个过程就变成了这样: // C++Test.cpp : 定义控制台应用程序的入口点。 ////#include “stdafx.h” //#include //#include //#include using namespace std;//声明一种回调函数 typedef void (*CallBackFunc)(void);class Baker原创 2016-10-13 09:30:58 · 165 阅读 · 0 评论 -
c++面试宝典1.0
宏定义1.宏定义展开容易造成二义性问题//#define SQR(x) (x*x)a =SQR(b+2)展开后为b+2*b+2而不是”(b+2)*(b+2)”若要平方形式对表达式适用,可以把宏定义改为//#define SQR(x) ((x)*(x))Const2.const有什么用途?在C程序中,const的用法主要有定义常量,修饰函数蚕食,修饰函数返回值等三个用处。在C++程序中,它还可以修饰函转载 2016-10-14 22:01:25 · 288 阅读 · 0 评论 -
c++面试宝典2.0
1.说明sizeof和strlen之间的区别sizeof操作符的结果类型是size_t,它在头文件中的typedef为unsigned int 类型。该类型保证能容纳实现所建立的最大对象的字节大小。sizeof是算符,strlen是函数sizeof可以用类型做参数,strlen 只能用char*做参数,而且必须以”\0”结尾的。Sizeof还可以用函数做参数。数组做sizeof的参数不退化,传递给s转载 2016-10-15 22:47:14 · 242 阅读 · 0 评论 -
c++知识复习2.0
16: 内存分配方式 内存分配方式有三种: (1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。 (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称原创 2016-09-30 22:50:30 · 534 阅读 · 0 评论 -
c++知识复习3.0
每种语言都有自己的一套符号,符号是组成程序的基本单位,它是由若干字符组成的具有一定意义的最小词法单元,如标识符、关键字、运算符、分隔符、常量、注释符等。这里组成符号的字符必须是这种语言字符集中的合法字符,在C++中规定了一个自己的字符集。2.1 C++字符集 字符是可以区分的最小单位,也是组成词法符号的基本单位。C++的字符由下列字符组成。 1、大小写英文字母 a~z,A~Z 2、数字字符原创 2016-10-01 21:38:02 · 266 阅读 · 0 评论 -
字符串格式化 sprintf
sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] … );除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以”%”开头的格式说明符(format spec转载 2016-11-07 23:20:11 · 4678 阅读 · 0 评论 -
c++知识复习4.0
2.4 常量 常量是在程序中不能被改变的量。 常量有各种不同的数据类型,不同数据类型的常量由它的表示方法决定,常量被存储在不能被修改的匿名变量中,常量或常量符号可出现在表达式中。 下面介绍各种不同数据类型常量的表示方法。 1、整型常量 整型常量可以用十进制、八进制和十六进制来表示。 (1)十进制整型常量由0至9的数字组成,没有前缀,不能以0开始,没有小数部分。有正负之分。例如:234,-原创 2016-10-02 20:33:15 · 397 阅读 · 0 评论 -
c++知识复习5.0
4、变量的定义与初始化 看下面例子。 //#include void main( ) { int a; char ch; for (ch=’a’ ;ch { a=ch; cout } } 程序输出什么结果? 答:将输出97,98,…,122 在c++中,任何一个变量在被引用之前必须被原创 2016-10-03 21:20:03 · 248 阅读 · 0 评论 -
关于引用
1、什么是“ 引用” ?申明和使用“ 引用” 要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。 申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数原创 2017-02-06 20:20:52 · 340 阅读 · 0 评论