<<c 和指针 >> 部分笔记。】的更多相关文章

C和指针---读书笔记.1,unsigned int  声明无符号int类型 默认是 singned,即此整数类型包括正负数.也可用于long上.说明符有 unsigned signed short long2,枚举 enum jump{cpu = 100, a = 2};3,for 循环的执行顺序,,for( expression1; expression2, expression3){statement;}expression1->expression2->statement->ex…
一.智能指针学习总结 1.一个非const引用无法指向一个临时变量,但是const引用是可以的! 2.C++中的delete和C中的free()类似,delete NULL不会报"double free"的oops. int main(int argc, char **argv) { int i; int *p = new int; delete p; p = NULL; delete p; ; } 3.智能指针的实现思想:使用可以自动销毁的局部对象来描述不可以自动销毁的位于堆空间中的…
Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct __person { char* name; char* title; unsigned int age; }person; /*结构体内存的释放问题*/ void __struct_memory_test(); #endif Chapter6.cpp #include "Chapter6.h&quo…
Chapter2.h #ifndef __CHAPTER_2_ #define __CHAPTER_2_ /*<深入理解C指针>学习笔记 -- 第二章*/ /* 内存泄露的两种形式 1.忘记回收内存 2.内存地址丢失 */ void __memory_leak_test(); /* 内存操作的几个函数 malloc alloc realloc free */ void __memory_function_test(); #endif Chapter2.cpp #include "Ch…
Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_ /*<深入理解C指针>学习笔记 -- 第五章*/ /*不应该改动的字符串就应该用 const char* 去修饰*/ size_t __strlen_test(const char*); /*返回字符串的几种方法*/ char* __return_str__test(); #endif Chapter5.cpp #include "Chapter5.h" #includ…
智能指针是一个类对象,而非一个指针对象. 原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 它的一种通用实现方法是采用引用计数的方法.智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针. 每次创建类的新对象时,初始化指针并将引用计数置为1: 当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数: 对一个对象进行赋值时,赋值操作符减少左操作数所指对象…
应该是小试牛刀的时候了. 在 ANSI C 的标准库中,有一个 atexit()函数.如果使用这个函数,当程序正常结束的时候,可以回调一个指定的函数. atexit()的原型定义如下: int atexit(void (*func)(void)); 1.首先着眼于标识符. int atexit(void (*func)(void)); 英语的表达为: atexit is 2.解释用于函数的(). int atexit(void (*func)(void)); 英语的表达为: atexit is…
最近竟然对指针有些迷惑了,分不清指针的指向.废话少说,复习.(下面内容来自<<c和指针>>) =指针 ==内存和地址 尽管一个字包含了4个字节,它仍然只有一个地址.至于是最左边还是最右边那个字节的位置 ,不同机器有不同的规定. 要求边界对其的机器上,整型值储存的起始位置只能是某些特定的字节,通常是2或4的倍数. ==指针变量的内容 & 符号用来产生操作数的内存地址. ==间接访问 通过一个指针访问它所指向的地址的过程成为间接访问或 dereferencing the poi…
本文参考http://www.prglab.com/cms/pages/c-tutorial/advanced-data/pointers.php 1.存储其它变量地址的变量(如下面例子中的address),我们称之为指针(pointer). 2.地址操作符/去引用操作符 在变量名标识符前面添加的与符号ampersand sign (&),该符号表达的含义是"......的地址(address of ...)",所以称之为地址操作符. 例如:address=&value…
准备复习一下之前读过的<C和指针>,主要看之前标记过的地方. 感觉像第一次看的地方再记录一下-- 1.预处理器读入源代码,根据预处理指令对其进行修改,然后将修改后的源代码交给编译器. 2.printf中使用%g打印一个浮点值(自动选择%f和%e中占宽度较小的一种),比%f常用哦根据本书--好吧之前没标记过这个. 3.三字母词trigraph sequences--完全没印象 三字母词 对应字符 ??= # ??( [ ??) ] ??< { ??> } ??/ \ ??! | ??…