摘要: 1. 初始化gdb 是对已经编译成功程序到调试, 并且为了保证可执行程序时包含调试信息, 编译时使用 -g 参数来指明sublimetext ctrl+B 生成到可执行文件不能直接被 gdb 调试2. 暂停程序gdb 可以实用几种方式来暂停程序: 断点, 观察店, 捕捉点, 信号, 线。 当程序被暂停后, 可以使用 continue, next, step 来继续执行程序continue 执行到下一个暂停点或程序结束next 执行下一行代码但进入函数内部step 执行下一行代码并且进入函数内部(1)设置断点 a. break +[源代码行号] b. break ... if ... con.. 阅读全文
posted @ 2013-12-20 17:08 SangS 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 1. 不能通过类名来调用类的非静态成员函数2. 类的对象可以使用静态成员函数和非静态成员函数3. 静态成员函数中不能引用非静态成员 因为静态成员函数属于整个类, 在类的实例化对象之前就已经分配了空间, 而类的非静态成员必须在类实例化对象后才有内存空间 4. 类的非静态成员函数可以调用静态成员函数, 但反之不行5. 类的静态成员函数必须先初始化再使用6. 重要特点 隐藏: 当我们同时编译多个文件时, 所有未加 static 前缀的全局变量和函数都具有全局可见性7. static 的第二个作用是保持变量的持久化 存储在静态数据区的变量会在程序刚开始运行时就完成初始化, 也是唯一一次初始化.... 阅读全文
posted @ 2013-12-20 10:35 SangS 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 相同点:都可以动态的申请并释放内存不同点:1. 用法不同 malloc 函数为 void* malloc(size_t size), 用于申请一块长度为 size 字节的内存空间. 假如我们希望申请一个长度为 100 的 int 型数组所需的内存空间的话, 我们需要写成这样, malloc(100*sizeof(int)). 同时注意到 malloc 返回的是 void* 的指针, 这就要求我们进行类型转换, int * ptr = (int*) malloc(100*sizeof(int)) free 函数为 void free(void*) 指针包含其指向的地址以及指向的类型以及长... 阅读全文
posted @ 2013-12-20 10:25 SangS 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 题目设定是这样的,一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛。这个岛有三个奇怪的宗教规则。1. 他们不能照镜子,不能看自己眼睛的颜色。2. 他们不能告诉别人对方的眼睛是什么颜色。3. 一旦有人知道了自己是红眼睛,他就必须在当天夜里自杀。某天,有个旅行者到了这个岛上。由于不知道这里的规矩,所以他在和全岛人一起狂欢的时候,不留神就说了一句话:【你们这里有红眼睛的人。】最后的问题是:假设这个岛上的人足够聪明,每个人都可以做出缜密的逻辑推理。请问这个岛上将会发生什么?举例子1. 假设岛上只有一个红眼睛, 那么这个红眼睛当晚就会自杀2. 假设岛上有两个红眼睛, 俩人都看到对方是红眼睛, 但第一 阅读全文
posted @ 2013-12-20 09:41 SangS 阅读(11810) 评论(0) 推荐(0) 编辑