![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 76
julysee
这个作者很懒,什么都没留下…
展开
-
彻底搞清 C/C++中a++与++a的区别
首先 a++和++a 的定义:看个例子A: a=5; b=++a; // 相当于a=a+1;b=a; 结果是a=6,b=6B: a=5; b=a++; // 相当于b=a;a=a+1; 结果是a=6,b=5所以书上有: (1) 如果用前缀运算符对一个变量增1(减1),则在将该变量增1(减1)后,用新值在表达式中进行其他的运算。 (2) 如果用后缀运算符转载 2015-02-12 13:58:59 · 3084 阅读 · 2 评论 -
C++中const的作用大全
Const 作用1. const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令2. 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。3. 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。4. 可以节省空间,避免不必要的内存分配。转载 2015-03-06 11:39:25 · 510 阅读 · 0 评论 -
C++中引用和指针的区别
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别转载 2015-03-05 14:11:48 · 288 阅读 · 0 评论 -
【面】评价C和C++的各自特点
【面】:评价一下C和C++的各自特点。如果一个程序需既需要大量运算,又要有一个好的用户界面,还需要和其他软件大量交流,应该怎样选择语言?答:C是一种结构化的语言,重点在于算法和数据结构。C程序的设计首先考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而对于C++而言,首先考虑的是如果构造一个对象模型,让这个模型能够契合与之对应的问题域,这样转载 2015-03-25 17:02:07 · 348 阅读 · 0 评论 -
C++中静态数据成员以及静态成员函数
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时转载 2015-03-25 10:13:52 · 343 阅读 · 0 评论 -
多重继承与虚拟继承
为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。这样一个类D的对象在访问继承的类A中的成员时就会出现二义性问题。如下面程序: 在31行coutError:D::a不明确。这是因为所有A的成员在D中都是成对出现的。这时转载 2015-02-28 18:17:05 · 351 阅读 · 0 评论 -
C++虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述转载 2015-02-28 16:41:48 · 321 阅读 · 0 评论 -
[C++]深入理解sizeof-使用规则及陷阱分析
说明:sizeof在笔试面试的时候频频地出现,这也是对基础的一个考查。关于sizeof的文章很多,但感觉大家都没有好好总结下,本着“先行先赢”和“为人民服务”的精神,查找引用参考了很多文章,在这里总结一下,有错误或者遗漏的地方还得请高手多多指教,也不要因这这些问题误导别人,希望以后大家在学习的过程中也能节省些时间。一、概要sizeof是C语言的一种单目操作符(但有人也不这么转载 2015-02-26 14:54:44 · 487 阅读 · 0 评论 -
字节对齐与结构体大小
说明:结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,对sizeof我们将在另一篇文章中总结,这篇文章我们只总结结构体的sizeof,报着不到黄河心不死的决心,终于完成了总结,也算是小有收获,拿出来于大家分享,如果有什么错误或者没有理解透的地方还望能得到提点,也不转载 2015-02-26 14:18:17 · 392 阅读 · 0 评论 -
extern "C"的用法解析
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处转载 2015-02-12 16:10:39 · 282 阅读 · 0 评论 -
自增自减操作符在C与C++中的左值区别
今天网上看到一个华为的面试题目:写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);答案是C是错误的,而A B D是正确的。我感到很疑惑,于是敲代码验证下,在C++中,确实答案是C不正确。但是原创 2015-02-12 14:36:07 · 623 阅读 · 0 评论 -
测试程序运行时间
Linux平台#include#includeusing namespace std;int main(){ clock_t start,finish; double totaltime; start = clock(); //your code finish = clock(); totaltime = (double原创 2015-04-02 10:09:25 · 352 阅读 · 0 评论