
c++
文章平均质量分 77
猿侠令狐冲
阳光 善良
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++使用过程中容易忽略的小细节
说明:此篇文献是读者在阅读《c++primer plus》中抓取的容易忽略的小知识点,如有不当之处,敬请指正。 1、运算符sizeof 可对类型名和变量名使用sizeof运算符。对类型名如(如int)使用sizeof运算符时,应将名称放到括号中;但是对于变量名(int a;中的a)使用该运算符时,括号时可选的(可有,亦可无)。 2.如果知道变量的初始值应该是什么,则应该对它进行初始化,将变量原创 2021-01-21 20:02:54 · 201 阅读 · 0 评论 -
前置++后置++等操作符的源码剖析
很多时候,我们面对编程呢个语言中的前置++ 后置++ 搞不清楚,今天我就从STL源码的角度,给大家解析一下。希望这篇博客能对你有所帮助。 在很多情况下我们会说前置比后置效率高 , 是因为后置需要构造临时对象并返回,在这个例子中,效率差异并不是很明显,因为该处构造的临时对象虽然是类对象,但是结构较简单,当构造的类对象比较复杂时候,差异就会很明显。另外一点,后置的优先级要高于前置的优先级。原创 2017-09-13 17:02:05 · 447 阅读 · 1 评论 -
详解sizeof和strlen之间的区别
首先,由以下几个例子说明sizeof和strlen之间的区别第一个例子:char* ss="0123456789";sizeof(ss)的结果为4,ss是指向字符串常量的字符指针。//求得是指针的大小 sizeof(*ss)的结果为1,*ss是第一个字符。第二个例子:char ss[]="0123456789";sizeof(ss)的结果为11,ss是数组,计算到“\0”的位置,因此是(10+1)原创 2017-09-18 16:21:07 · 658 阅读 · 0 评论 -
关于堆和栈的区别
在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可以分为以下几个类: 栈区:由编译器自动分配和释放,存放函数的参考值、局部变量的值等。 其操作方式有些类似于数据结构中的栈。 堆区:一般由程序员分配和释放,若程序员不释放,程序结束时可由操作系统回收。注意它与数据结构中的堆是两码事,分配方式倒是类似于链表。 全局区(静态区)(static):全局变量和静态变量的存储是放原创 2017-09-24 16:16:08 · 209 阅读 · 0 评论 -
c++/c常量
1.字面常量字面常量是在程序中使用的最多的常量,例如,直接出现的各种进制的数字、字符(‘’括住的单个字符)或字符串(“”括住的一系列字符)等。实际上,只存在基本数据类型的字面常量。下边是一些字面常量的例子由于字面常量只能引用,不能修改,所以语言实现一般把它保存在程序的符号表里,而不是一般的数据区。符号表是“只读”的,其实它是一种访问保护机制,千万不要理解为只读存储器(ROM)。除了字符串外,你无法读原创 2017-08-13 15:10:24 · 326 阅读 · 0 评论 -
const与#define的比较
c++语言可以用const来定义常量,也可以用#define来定义常量。但是前者比后者有更多的优点: (1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行静态类型安全检查;而对后者只能进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边缘效应)。 (2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。所以在C++程序中,应原创 2017-08-13 15:30:53 · 294 阅读 · 0 评论 -
C++函数重载
函数重载函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载。注意函数重载不能基于不同的返回值类型进行重载。注意函数重载中的“形参表”不同,是指本质不同,不要被一些表象迷惑。main函数不能被重载。下面三组定义本质是相同的,不是重载:1)int sum (int &a); 和 int sum (int &);2) i转载 2017-08-17 21:26:22 · 170 阅读 · 0 评论 -
深入理解C++函数重载const
书上和网上在很多地方都对const 的重载做了一些解释,但感觉都不是很详细。还有很多同学在不同的地方发问关于const 重载的问题,这里我又重新看了一下,做了一个简单的分析也可能有不对的地方,欢迎讨论。所谓重载,是指允许存在多个同名函数,而这些函数的参数表不同,即函数名相同但函数的签名不同。重载并不是面向对象编程的特有属性,这是因为重载是在编译阶段实现的,编译器根据函数不同的参数表,对同名函数转载 2017-08-17 22:12:26 · 4259 阅读 · 2 评论 -
C++使用过程中容易忽略的小细节
说明:此篇文献是读者在阅读《c++primer plus》中抓取的容易忽略的小知识点,如有不当之处,敬请指正。 1、运算符sizeof 可对类型名和变量名使用sizeof运算符。对类型名如(如int)使用sizeof运算符时,应将名称放到括号中;但是对于变量名(int a;中的a)使用该运算符时,括号时可选的(可有,亦可无)。 2.如果知道变量的初始值应该是什么,则应该对它进行初始化,将变量声原创 2017-08-17 22:20:22 · 314 阅读 · 0 评论 -
C++友元函数、友元类、友元成员函数
众所周知,C++控制对类对象私有部分的访问。通常,公有类方法提供唯一的访问途径,但是有时候这种限制太严格,以至于不适合特定的编程问题。在这种情况下,C++提供了另外一种形式的访问权限:友元,友元有3种: 友元函数、友元类、友元成员函数。 通过让函数成为类的友元(即:友元函数),可以赋予该函数与类的成员函数相同的访问权限。在介绍如何成为友元前,先介绍为何需要友元。在为类重载二元运算符时(带有两个参原创 2017-08-18 16:08:06 · 775 阅读 · 0 评论 -
C++栈解退
假设try块没有直接调用引发异常的函数,而是调用了对引发异常的函数进行调用的函数,则程序流程将从引发异常的函数跳到包含try块和处理程序的函数。这涉及到栈解退,下面将进行介绍。 首先来看看c++筒仓啊是如何处理函数调用和返回的。c++通常将信息放在栈中来处理函数调用。具体地说,程序将调用函数的指令的地址(返回地址)放在栈中。当被调用的函数执行完毕后,程序将使用该地址来确定从哪里开始继续执行。另外,原创 2017-08-20 10:12:17 · 2670 阅读 · 2 评论