Fork me on GitHub

随笔分类 -  C/C++

Basics、Advanced、GP、STL、Memory Management
摘要:参考:Initializer lists and uniform initialization initializer list C++ 03 已经部分支持initializer lists,允许你对一些简单的聚合类型(aggregate data types)例如C风格的数组 但是对于class这 阅读全文
posted @ 2019-07-19 23:12 克拉默与矩阵 阅读(579) 评论(0) 推荐(0) 编辑
摘要:Signed integers singed integers保存数字范围如上,对于超出数字范围的数,其最终数值是截断处理。 int8_t是C++ 11 推出的类型,定义在头尾件<cstdint>中。 280的二进制 1 0001 1000 384的二进制 1 1000 0000‬ 另外,整数除法, 阅读全文
posted @ 2019-07-19 19:58 克拉默与矩阵 阅读(890) 评论(0) 推荐(0) 编辑
摘要:代码演示常量区 代码演示栈区 p,q指向内容乱码很好理解,但是p q 的指向的地址是一样的,这是因为“hello”在.rdata区。还有一种情况,char *p = "hello"; hello也在.rdata区。二者区别如下 char str[] = "hello" 这里面str不是指针,他是数组 阅读全文
posted @ 2019-06-22 17:19 克拉默与矩阵 阅读(797) 评论(0) 推荐(1) 编辑
摘要:简介 vector::erase 从指定容器删除指定的元素 两个重载: 错误用法1 编译OK,运行报错。 vc.erase(iter)执行之后,iter就变成了野指针,对一个野指针进行iter++操作肯定会出错。 错误用法2 保存vc.erase(iter)返回值 编译OK 运行报错。 ①无法连续删 阅读全文
posted @ 2019-03-04 00:19 克拉默与矩阵 阅读(3964) 评论(1) 推荐(0) 编辑
摘要:数组做形参退化为指针 如果数组作为函数参数,则数组形参会退化为指针,以下代码在编译器看来是等价的 数组 //arr,&arr的数组类型不一样//arr,数组首元素地址,一个元素4字节,+1,+4//&arr,整个数组的首地址,一个数组4*10=40字节,+1,+40 char* argv[]和cha 阅读全文
posted @ 2019-03-01 10:00 克拉默与矩阵 阅读(1581) 评论(0) 推荐(0) 编辑
摘要:先看一段代码 char str[12] = "Hello"; char *P = str; *p = 'h';//改变第一个字母 char *ptr = "Hello"; *ptr = 'h'; //错误 字符串可以用字符指针char*、字符数组等来表示。 第一个字符串使用数组开辟的,他是可以改变的 阅读全文
posted @ 2019-02-28 23:39 克拉默与矩阵 阅读(4357) 评论(0) 推荐(0) 编辑
摘要:简介 Stack,是存在于某作用域(scope) 的一块内存空间(memory space)。例如当你调用函数,函数本身即会形成一个stack 用來放置它所接收的参数,以及返回地址。在函数本体(function body) 內声明的任何变量,其所使用的內存块都取自上述stack。Heap,也叫做sy 阅读全文
posted @ 2019-02-28 20:31 克拉默与矩阵 阅读(944) 评论(0) 推荐(1) 编辑
摘要:前言 操作符重载是C++一个很大的特性,如下C++复数代码 各种运算都是通过操作符。而在早先的C语言,或其他语言,你要对一个东西进行操作一定设计一个函数。事实上在C++里面操作符就是一种函数,是可以让你从新定义的。单独定义一个函数plus表示复数加法还不如之间用+来的直观。 操作符重载2种方式 成员 阅读全文
posted @ 2019-02-28 15:56 克拉默与矩阵 阅读(273) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-01-13 19:32 克拉默与矩阵 阅读(6) 评论(0) 推荐(0) 编辑
摘要:predefined macros,预定义宏,C/C++混合编程 阅读全文
posted @ 2019-01-09 11:38 克拉默与矩阵 阅读(401) 评论(0) 推荐(0) 编辑
摘要:参考:When should I use -inl.h files? C++ *-inl.h files 有时间再整理 阅读全文
posted @ 2019-01-05 22:21 克拉默与矩阵 阅读(1143) 评论(0) 推荐(0) 编辑
摘要:原问题:Difference between .h files and .inc files in c C/C++的标准惯例是将class、function的声明信息写在.h文件中。.c文件写class实现、function实现、变量定义等等。然而对于template来说,它既不是class也不是f 阅读全文
posted @ 2019-01-05 22:03 克拉默与矩阵 阅读(9103) 评论(1) 推荐(1) 编辑
摘要:scope和namespace scope就是我们常说的作用域,namespace是C++引入的一个关键字。这两种都和作用域有些微妙的联系,下面 引自Global scope vs global namespace的回答很好解释了这两个概念。 In C++, every name has its s 阅读全文
posted @ 2019-01-04 17:10 克拉默与矩阵 阅读(499) 评论(0) 推荐(0) 编辑
摘要:前言 C/C++中因为header files依赖导致的问题往往不容易察觉,可能你在一个环境下运行良好的代码拿到另一个环境下就会报一堆“未定义XXX”的错误。通常每一个 .cc 文件都有一个对应的 .h 文件. 也有一些常见例外, 如单元测试代码和只包含 main() 函数的 .cc 文件. 看似简 阅读全文
posted @ 2019-01-04 16:30 克拉默与矩阵 阅读(1072) 评论(0) 推荐(1) 编辑
摘要:前言 先看一段代码 代码本身逻辑很简单,无外乎简单的找出两个T类型变量中大者。 这里有几个关键字的用法很值得深究,特此记录下感想。 inline 简单的理解inline就是,他只有带参宏的优点,没有带参宏的缺点。但实际情况,这可能仅仅是Programmer的一厢情愿。因为啥? inline和regi 阅读全文
posted @ 2018-12-25 13:22 克拉默与矩阵 阅读(597) 评论(0) 推荐(0) 编辑
摘要:前言 当代码写复杂后,一定会封装出大量的函数,这会导致两个问题: ①函数越多,栈的消耗也越厉害 疑问:为什么代码复杂了、函数变多了,栈消耗的就很厉害? 答:因为这会导致函数的调用深度可能会很深,比如: fun1 --> fun2 --> fun3 --> fun4 --> fun5 > ... 在这 阅读全文
posted @ 2018-09-24 09:59 克拉默与矩阵 阅读(296) 评论(0) 推荐(2) 编辑
摘要:C不支持函数重载,C++支持 代码演示 main.c 1 #include<stdio.h> 2 3 void Max(int a, int b) 4 { 5 printf("%d ", a > b ? a : b) ; 6 } 7 8 void Max(double a, double b) 9 阅读全文
posted @ 2018-09-03 17:00 克拉默与矩阵 阅读(939) 评论(0) 推荐(0) 编辑
摘要:前言 在讨论多维数组动态开辟与释放之前,先说说什么是二维数组静态开辟与释放。 形如这种就是静态开辟内存,事先画好了内存大小 #include<iostream> using namespace std; #define ROW 3 #define COL 4 int main() { int ar[ 阅读全文
posted @ 2018-09-02 21:07 克拉默与矩阵 阅读(4275) 评论(0) 推荐(0) 编辑
摘要:前言 大型和十分复杂的程序往往会产生一些很难查找的甚至是无法避免的运行时错误。当发生运行时错误时,不能简单地结束程序运行,而是退回到任务的起点,指出错误,并由用户决定下一步工作。面向对象的异常处理(exception handling)机制是C++语言用以解决这个问题的有力工具。函数执行时,放在tr 阅读全文
posted @ 2018-09-01 21:36 克拉默与矩阵 阅读(449) 评论(0) 推荐(0) 编辑
摘要:前言 数据是怎么写道磁盘的? 代码里面我们一个读写调用似乎就能将数据从磁盘读写。仿佛代码是直接和磁盘打交道。以我们最常见的笔记本、或台式机的磁盘SATA盘为例,其受南桥上ATA控制器支配,这里面传输的ATA指令。至少我们代码里面是没有处理这部分的,所以我们代码直接操控磁盘说不通。现实情况是,C++通 阅读全文
posted @ 2018-08-30 09:53 克拉默与矩阵 阅读(1335) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示