C-C++
魔峥
以前没有云笔记,写博客就是自己记笔记。
现在发现居然很多人会看。我得好好写了。
展开
-
C/C++笔记(C语言重要问题重讲,数据篇)
笔记原在个人印象笔记,现在整理搬运。一、基本数据类型二、变量与空指针常量原创 2016-07-18 19:51:24 · 319 阅读 · 0 评论 -
C++11读书笔记—5(右值系统)
C++11中所有的值必是左值,纯右值,将亡值之一。右值引用&&完美转发原创 2016-08-03 10:38:04 · 414 阅读 · 0 评论 -
C++11读书笔记—3(auto与decltype类型推导)
C++一直认为是“静态类型语言”,声明一个变量的类型再使用。而动态类型语言如python,不用声明,直接就可以用。说实话,有些时候声明类型的行为的确看似多余,如int i = 1;你仅看i = 1时,你就知道i是int型的。于是自动类型推导出现了。这里我们使用的是auto关键字。老C语言里面auto关键字可怜到基本没人用,因为他是默认设置,(都默认了谁还多写啊)。于是C++来重定义了一下。原创 2016-07-30 13:55:01 · 570 阅读 · 0 评论 -
C++11读书笔记—4(右值系统引论,老C++的若干大坑)
说右值系统,要从 把C/C++程序员坑了无数遍的“浅拷贝深拷贝”问题说起。之后介绍C++11标准之前的大坑们。如深拷贝浅拷贝;函数返回对象究竟是什么过程;以及函数的引用返回原创 2016-07-31 19:45:41 · 357 阅读 · 0 评论 -
C/C++笔记(C语言重要问题重讲,内存四区篇)
C/C++内存怎么划分原创 2016-07-18 20:08:39 · 1872 阅读 · 3 评论 -
C++11读书笔记—7(内存管理)
当你羡慕Java垃圾回收时,你想没想过java的垃圾回收机制靠C++实现的,而其实早先C++版本的实现。其实C++的内存分配的难点不是把不该回收的回收了。而是有些不像指针的指针很容易识别不了。一.垃圾回收方式简介1.引用计数法(Reference Counting Collector) 引用计数法是唯一没有使用根集的垃圾回收的法,该算法原创 2016-08-04 15:39:43 · 1328 阅读 · 0 评论 -
C++笔记-1(C++类型转换)
C的转换属于太多与灵活,如果C++的类与对象也这样使用,将会很不安全。char* pstring = "hello!"int* p =(int *)pstring;一、static_cast静态类型转换static_cast用于相关类型的指针之间的转换,还可以显式执行标准数据类型的类型转换。其重要的作用是在编译阶段检查类型转换是否安全。 Base *pBase = new B原创 2016-08-04 14:19:14 · 372 阅读 · 0 评论 -
C++11读书笔记—2(新模板)
一、函数模板允许具有默认参数C++98标准中不支持函数模板的默认模板参数。在C++11之前的版本,类型推导很差。而类型推导的大爆发在C++11上面有很大进步。注意 默认参数必须是“从右往左”原则 template<typename T1,typename T2 = float>void f(T1 a = 0,T2 b = 0) {}int main(){ f...原创 2016-07-29 10:46:50 · 341 阅读 · 0 评论 -
C++11读书笔记—1(长期历史遗留问题,宏定义与类型)
一、宏定义的补全1.C宏的补全C的精髓宏定义更有更好的兼容请看下面代码,VS2015在部分没有做提示,但是可以用。但在标准C++0x版本不能用,#include#define LOG(...){\ printf("文件名为:%s,%d\n",__FILE__,__LINE__);\ printf("变长参数为%s\n",__VA_ARGS__);\ printf("函数原创 2016-07-28 18:59:02 · 1415 阅读 · 0 评论 -
C++11读书笔记—0(迟到的C++11)
面对Java的强大来袭,C++的功能弱势越来越大。很多java程序员总胡作惊呼C++:反射技术呢?内置多线程库呢?内存溢出问题你能不能解决下?C++11很早之前就炒出来了,接触C++11后我不禁惊呼“这TM还是C++吗?你说他是C+++语言我都信。”改动太多了。 通过内存模型、线程、原子操作的本地并行编程 右值概念与类型推导功能 新内存管理 lambda函数还有我目前不知道的一堆东原创 2016-07-28 18:58:05 · 299 阅读 · 0 评论 -
C/C++笔记(C语言重要问题再论,字符串篇)
一、字符串的性质1. C语言字符串是以零为结尾的字符串2. C语言没有字符串这种类型。都是通过数组模拟字符串。3. 字符串可以在堆上,栈上,全局区。二、字符串赋值用法1.指定长度char buf[100] ={'a','b','c','d'}//后面buf[4]到buf[99] 置为零。2.不指定长度,C编译器自动帮char buf[] ={'a','b','c原创 2016-07-19 13:57:57 · 381 阅读 · 0 评论 -
C/C++笔记(C语言重要问题,结构体篇)
为什么要写结构体?因为用C++较多。class用多了,结构体就忘了。回头一看,结构体原来还有这么多坑。一、C语言中,struct结构体的的用法struct Teacher{};//要使用struct Teacher,可以像下面这么搞,这是最常见用法。typedef struct Teacher{}Teacher;Teacher t;其他使用方法这些使用方式不好,但原创 2016-07-19 16:34:19 · 514 阅读 · 0 评论 -
C++笔记-0(C++基本问题,对C的拓展)
一、命名空间C的命名空间只有一个全局作用域。调用1.dll时,一下子调到3.dll了。C++提出命名空间namespace A{ int a=0;}namespace B{ int b=0; namespace c: { };}二、实用性加强C++随时定义变量C99也这样做了。三、regi原创 2016-08-04 10:41:35 · 371 阅读 · 0 评论 -
C++11读书笔记—6(新指针)
问:你为什么不用C/C++?答:面对一个24小时不能中断运行的程序,程序员的一点内存错误通过积累可能带来灾难性后果。〇、C++11版本之前的内存之前我在C/C++基础的专区上已经说了C/C++几个大坑。(1)野指针问题(2)重复内存释放问题(3)内存泄漏问题C++11的智能指针(本质是个模板类)C++11的指针空值nullptr原创 2016-08-04 09:15:30 · 445 阅读 · 0 评论 -
C/C++笔记(C语言重要问题,指针与数组篇)
配合内存四区看一、指针的本质指针的本质就是4字节。原创 2016-07-19 10:45:27 · 490 阅读 · 0 评论 -
C++11读书笔记—8(多线程使用简介)
C/C++程序员最苦恼的是自己跨平台能力不是一半弱。如果想跨平台,俺么一大堆函数库等着你来学习。你再反观java。。。。一、原子操作所谓原子操作,就是多线程中“最小的且不可并行化的操作”。通常原子操作都是互斥访问保证的。但是互斥一般靠平台相关汇编指令,这也是为什么C++11之前一直没有做的原因。原创 2016-08-06 23:11:11 · 1296 阅读 · 0 评论