C
weixin_42173948
这个作者很懒,什么都没留下…
展开
-
递归模型和边界
#include <cstdlib>#include <iostream>#include <vector>#include <deque> using namespace std;#if 1class Test{public: int FMath(int n) { if(n == 1) return 1; else if(n == 2)原创 2020-07-09 15:56:54 · 306 阅读 · 0 评论 -
C++基础
malloc与new?malloc为C库函数,new为C++关键字malloc申请内存以字节为单位,不可同时初始化这片内存;new申请内存以类型为单位,并同时初始化内存对象的创建只能靠new,创建对象时,触发构造函数free与deletefree为C库函数,delete为C++关键字free为释放内存后,还得将指针赋值NULL,否则可能出现野指针delete直接销毁对象,触发析构函数...原创 2020-07-01 09:05:02 · 144 阅读 · 0 评论 -
C语言异常处理
C异常处理#include <iostream>#include <string>using namespace std;double divide(double a, double b, int* valid){ const double delta = 0.000000000000001; double ret = 0; if( !((-delta < b) && (b < delta)) ) ...原创 2020-06-28 21:36:59 · 173 阅读 · 0 评论 -
链表栈
#include <stdio.h>#include <stdlib.h>/* 栈 */typedef struct node { int num; struct node* pt_next;}T_node;typedef struct { T_node t_head; T_node t_tail;}T_stack;int init_stack(T_stack* pt_stack){ if (pt_stack == NULL) return -1;原创 2020-05-29 09:45:57 · 172 阅读 · 0 评论 -
队列链表--临时
#include <stdio.h>#include <stdlib.h>/* 队列 */typedef struct node { int num; struct node* pt_next;}T_node;typedef struct { T_node t_head; T_node t_tail;}T_queue;int init_queue(T_queue* pt_queue){ if (pt_queue == NULL) return -1;原创 2020-05-24 22:06:21 · 103 阅读 · 0 评论 -
C知识点框架总结
内存: 内存管理方法:栈、堆、代码段(.txt)、数据段(.data)、bss段(.bss) 栈: 自动:编译器自动申请和释放,如局部变量的管理。 连续:申请一个内存后接着申请下一个 空间小:注意申请数组空间大小(比堆小) 栈溢出情况:数组定义过大、递归深度太深容易使栈溢出 动态局部变量的生命周期和作用域:被定义的局部函数内部,局部函数结束,资源释放,局部变量消...原创 2020-04-25 20:25:11 · 115 阅读 · 0 评论 -
字符串常用函数总结
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(void){ /* handle * strcpy:all string cmp include '\0' * strncpy: * memcpy: * strcat: * strncat: ...原创 2020-04-25 17:33:01 · 93 阅读 · 0 评论 -
快速排序
#include <stdio.h>#include <stdlib.h>#include <string.h>void swap(int* a, int* b){int tmp = 0;tmp = *a;*a = *b;*b = tmp;}void mergeAdd(int arr[], int left, int right) {//实现...原创 2020-04-19 12:50:41 · 515 阅读 · 0 评论 -
归并排序
#include <stdio.h>#include <stdlib.h>#include <string.h>void mergeAdd(int arr[], int left, int mid, int right, int* temp) {//实现“治” int i = left; int j = mid+1; int k = left;...原创 2020-04-18 20:48:58 · 87 阅读 · 0 评论 -
选择、冒泡、插入排序
#include <stdio.h>#include <stdbool.h>void swap(int* a, int* b);void bubbleSort(int arr[], int ArrSize);void cockTailSort(int arr[], int ArrSize);void choiceSort(int arr[], int arrSi...原创 2020-04-18 10:49:19 · 87 阅读 · 0 评论 -
预处理(未完ing)
源码到可执行程序的过程:预处理(.c->.i(预处理后文件)):#include(头文件包含),条件编译,宏定义,注释等,编译(.i->.S(汇编文件))汇编(.S->.o(目标文件))链接(.o->elf(可执行程序 ))- #include<> (系统指定目录寻找),或者加-I- #include""(先当前目录下寻找,没找到取系统目录下寻找...原创 2020-04-12 15:33:20 · 81 阅读 · 0 评论 -
枚举
#include <stdio.h>// enum week{ SUN, //SUN 0 MON, //MON 1 TUE, WEN, THU, FRI, STA,};int main(){ enum week en; en = SUN; printf("%d\n",en); // 0 printf("%d\n", MON); // 1 p...原创 2020-04-12 14:34:41 · 63 阅读 · 0 评论 -
共用体union
基本用法同结构体/* 1.s,i同一个内存 2.s_tr1.i,按照int类型解析内存空间 3.s_tr1.s,按照short类型解析内存空间 */union STR1 { short s; //8 int i; //4 }; //12 int main(){ union STR1 s_tr1; printf("sizeof(s_tr1)...原创 2020-04-11 19:07:52 · 70 阅读 · 0 评论 -
结构体四字节对齐
struct s{ char c; int i;};结构体对齐为什么要元素对齐访问?配合硬件(ddr、lcd、mmu),硬件本身有物理限制,对齐排布访问效率高。四字节对齐,配合32位系统,以4字节为一个单位,读取速度最快,效率最高。若没有四字节对齐,需要读取多条指令,效率低。对比:对齐访问、效率高但牺牲内存空间;非对齐访问,内存利用率高,但效率低。结构体如何对齐对齐最...原创 2020-04-11 17:47:01 · 572 阅读 · 0 评论 -
sizeof与strlen
字符串三部分const char *p = “linux”;(1)指向字符串的指针----4字节(2)字符串:linux---- 5byte(3)字符串结束符标志(不属于字符串) :‘\0’ — 1byte如何存储字符串const char *p = “linux”;char p[] = “linux”;sizeof()与strlen()sizeof()是关键...原创 2020-04-06 16:17:41 · 136 阅读 · 0 评论 -
栈、堆、代码段、数据段、bss段
段可执行程序的组成部分代码段程序中可执行部分,直观为函数堆叠组成特殊数据放到代码段char *p = “linux”;const修饰的变量数据段(.data)别名:数据区、静态数据区、静态区直观理解为C语言中的全局变量才是程序的数据具体为:显示初始化为非零的全局变量和静态全局变量都在数据段bss段初始化为0的数据段注意:未显示初始化全局变量值...原创 2020-04-05 12:40:36 · 117 阅读 · 0 评论 -
C语言内存的理解
获取内存的三种情况:栈(stack)、堆(heap)和数据区(.data)栈机制获取内存方式:自动分配和回收-----【自动管理】由于不清理内存中的数据,分配时任然保留原来的值 ---- 【脏内存】不要返回栈变量的地址,由于反复使用,地址指向的内存中的数据会被改写,避免数据的混杂 — 【临时的】栈有大小:午穷尽分配会导致栈溢出,局部函数递归调用分配内存,而没有写停止条件,导致栈溢出(内...原创 2020-04-04 16:18:04 · 202 阅读 · 0 评论 -
const and volatile
const and volatile Registerconst修饰符意味:只读使用:1、const修饰的局部变量,不能当左值,但可以通过指针进行修改。存在栈上只读变量2、const修饰的全局变量(具有全局声明周期:如static修饰的局部变量),不可以当左值,不可以使用指针进行修改,否则会导致程序奔溃3、const 本质修饰的是 只读变量,将变量放在只读存储区。目的:1 ...原创 2020-03-28 13:33:00 · 144 阅读 · 0 评论 -
C语言部分知识总结
Static用法用来修饰函数和变量修饰函数之后,只能在本文件中明显调用,其他文件无法调用。修饰局部变量局部变量在局部函数运行完会消失而静态局部变量不会消失,函数返回他的值也不变,相当于全局变量。修饰全局变量普通全局变量其他文件可见静态全局变量只对当前文件可见C语言编译过程为:预处理–>编译–>汇编–>链接结构体字节对齐:内存的结构按照一定的规则在排序,而不是一...原创 2020-03-28 11:35:41 · 83 阅读 · 0 评论 -
链表基本操作
总结:链表基本操作对链表头尾节点操作:通过头尾节点指针重新指向对链表中间节点操作:先判断是否为空,for循环遍历链表注意:mid是从第一个有效结点地址走到尾节点地址增加节点注意malloc,失败结束删除节点注意free,赋值NULL如何实现队列:入队:在节点头后面增加节点出队:在节点尾前面删除节点示例头操作void LinkAddHead(PT_Link ptL...原创 2020-03-17 20:49:34 · 70 阅读 · 0 评论