
C/C++
文章平均质量分 64
Lifenyencr
这个作者很懒,什么都没留下…
展开
-
define与const的区别
C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下:用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常量的名字联系起来,define所定义的宏变量在预处理的时候进行替换,在程序中使用到该常量的地方都要进行拷贝替换;用const float MAX = 255; 定义的常量有类型名转载 2017-06-03 15:40:29 · 449 阅读 · 0 评论 -
柔性数组
(1)用途:满足需要变长度的结构体;(2)用法:在一个结构体的最后,申明一个长度为0的数组,就可以使得这个结构体是可变长的。对编译器来说,此时的长度为0的数组并不占用空间(因为数组名本身不占空间,它只是一个偏移量。)数组名这个符号本身代表了一个不可以修改的地址常量(数组名永远不可能是指针)但对于这个数组的大小,我们可以进行动态分配。对于0长数组的这个特点,很容易构造出变成结构体,如原创 2017-09-13 16:32:36 · 299 阅读 · 0 评论 -
一个类的六个默认函数
类的6个默认的成员函数包括:构造函数、析构函数、拷贝构造函数、赋值运算符重载函数、取地址操作符重载、const修饰的取地址操作符重载。这篇文章重点解释前四个。(一)构造函数构造函数,顾名思义,为对象分配空间,进行初始化。它是一种特殊的成员函数,具有以下特点:1.函数名与类名相同。2.无返回值。3.构造对象的时候系统会自动调用构转载 2017-08-14 20:11:03 · 431 阅读 · 0 评论 -
this指针的理解
1.一个对象的this指针并不是对象本身的一部分,不会一影响sizeof(对象)的结果。this作用域是在类的内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动的将对象的本身的地址作为一个隐含参数传递给函数。2.指针的使用(1)在类的非静态函数中返回类对象的本身(return *this);(2)当参数与成员变量名相同时,(this->n = n)不能写成n=n;原创 2017-08-24 18:42:36 · 241 阅读 · 0 评论 -
C++的重载,覆盖以及隐藏
成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4)基类函数必须有 virtual 关键字。这个时候派生类覆盖基类函数;#includ原创 2017-08-17 16:09:03 · 210 阅读 · 0 评论 -
C语言移位操作符
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。 位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否原创 2017-08-10 09:00:20 · 385 阅读 · 0 评论 -
const关键字的使用
一:定义常量(a)const修饰常量,含义是const修饰的类型为TYPE的变量value是不可变的:TYPE const valuename = value;const TYPE valuename = value; (b)将const改为外部链接,作用扩大到全局,编译的时候会分配内存,并且可以不进行初始化,仅仅作为声明:extend const int valuename原创 2017-08-16 13:27:43 · 281 阅读 · 0 评论 -
C++中const的不同位置的用法
由于本人对于const的用法也是老是迷糊,所以总结了这些希望可以帮到和我一样的朋友;一、 const与define. 两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。(小原创 2017-06-24 17:04:02 · 7662 阅读 · 1 评论 -
C++位运算符
1.按位非~一元运算符,是对其运算数的每一位取反,例如:数字42,二进制为00101010,则~00101010为11010101.2.按位与&俩个运算符都是1则为1,其他都为0;3.按位或 |任何一个运算符为1,结果为1;4.按位异或只有再俩个比较位不同是,结果是1,否则是0;5.右移 num>>value num指要移位值,value是移动的位数;就是说原创 2017-06-20 12:45:30 · 355 阅读 · 0 评论 -
C11的标准特性
C11标准是C语言标准的第三版(2011年由ISO/IEC发布),前一个标准版本是C99标准。相比C99,C11有哪些变化呢——1、 对齐处理alignof(T)返回T的对齐方式,aligned_alloc()以指定字节和对齐方式分配内存,头文件定义了这些内容。2、 _Noreturn_Noreturn是个函数修饰符,位置在函数返回类型的前面,声明函数无返回值,有点类似于gcc的_转载 2017-06-20 09:32:37 · 11535 阅读 · 0 评论 -
atoi()函数的实现
atoi():int atoi(const char *str);功能:把字符串转换为整型数;以下是代码实现:#include #include #include using namespace std;int atoi_my(char *s1){ int s=0; bool flag = false; while(*s1 == '原创 2017-08-28 16:17:31 · 238 阅读 · 0 评论