C_C++
文章平均质量分 70
OopspoO
be better
展开
-
gcc编译过程简介
fill:#333;color:#333;color:#333;fill:none;原创 2024-06-30 21:54:58 · 813 阅读 · 0 评论 -
C++json库——nlohmann-json
CJSON简单介绍。原创 2023-12-16 15:58:53 · 2341 阅读 · 0 评论 -
C++日志库——spdlog
spdlog是一个仅有头文件的库,只需要拷贝include下面的文件加到本地工程目录并使用支持C++11的编译器编译即可。原创 2024-01-14 21:23:18 · 450 阅读 · 0 评论 -
C标准库函数——printf
C语言printf函数描述C 库函数 int printf(const char *format, …) 发送格式化输出到标准输出 stdout。printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);声明下面是 printf() 函数的声明。int printf(const char *forma...原创 2023-11-14 00:19:30 · 291 阅读 · 0 评论 -
C++的各种初始化
原因同样是创建对象时,要初始类成员的每一个成员(如果没有在初始化列表里面,编译器会自动使用它的默认的构造函数进行初始化,但是它没有默认构造函数,所以会编译报错,所以没有默认构造函数的成员变量需要使用初始化列表进行初始化)能用直接初始化和拷贝初始化的地方都能用列表初始化,而且列表初始化能对容器进行方便的初始化,因此在新的C++标准中,推荐使用列表初始化的方式进行初始化。值初始化和默认初始化一样,对于内置类型初始化为0,对于类类型则调用其默认构造函数,如果没有默认构造函数,则不能进行初始化。原创 2023-03-26 23:05:56 · 6086 阅读 · 0 评论 -
终端输出g_debug()信息
g_debug 输出问题原创 2022-07-27 22:22:34 · 640 阅读 · 0 评论 -
C标准文档
C标准文档原创 2022-06-30 23:03:26 · 860 阅读 · 1 评论 -
C++标准文档
c++标准文档链接原创 2022-06-30 22:42:17 · 1172 阅读 · 0 评论 -
C++ primer笔记
c++ primer笔记原创 2022-06-19 22:04:06 · 666 阅读 · 1 评论 -
0x04基础套接字-回射客户服务器
回射客户/服务器 1. 客户端从标准输入获取一行数据,然后发送到服务器; 2. 服务器收到信息后,不处理消息内容,直接将消息内容原封不动地发送给客户端; 3. 客户端收到后,在标准输出上打印出来。TCP回射客户/服务器程序服务器端/************************************************************************* >原创 2018-04-10 15:45:50 · 251 阅读 · 0 评论 -
0x04基础套接字-简单聊天程序实现
聊天程序实现用多进程方式实现点对点聊天 一个进程用来获得输入,一个进程用来获得对方发来的消息客户端//p2pcli.c#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#include原创 2018-04-10 15:46:31 · 252 阅读 · 0 评论 -
0x00数据结构——C语言实现(单链表)
0x00数据结构——C语言实现(单链表)/*filename:singly_linked_list.h*//* 单链表(singly linked list)是一种最简单的链表表示,也叫做线性链表。 用它来表示线性表时,用指针表示结点间的逻辑关系。 Functions: (在链表中增加附加头结点的版本) 创建一个空线性表 将链表置为空表 计算表长度 ...原创 2018-04-23 21:09:23 · 390 阅读 · 0 评论 -
0x00数据结构——C语言实现(双链表)
0x00数据结构——C语言实现(双链表)/*filename:double_linked_list.h*//* 双链表(double linked list) Functions: (在链表中增加附加头结点的版本) 创建一个空线性表 将链表置为空表 计算表长度 返回附加头结点的地址 搜索函数:找x在表中的位置,返回表项位置 定位函数...原创 2018-04-23 21:12:47 · 276 阅读 · 0 评论 -
0x00数据结构——C语言实现(单向循环链表)
0x00数据结构——C语言实现(单向循环链表)/*filename:circular_list.h*//* 循环链表(circular list)是另一种形式的表示线性表的链表,与单链表不同的是, 表尾结点的link域中不是NULL而是存放指向链表开始结点的指针。 Functions: 创建一个空线性表 计算表长度 返回附加头结点的地址 搜索函数:...原创 2018-04-23 21:16:54 · 398 阅读 · 0 评论 -
0x00数据结构——C语言实现(双向循环链表)
0x00数据结构——C语言实现(双向循环链表)/* 循环双链表 Functions: (在链表中增加附加头结点的版本) 创建一个空线性表 将链表置为空表 计算表长度 返回附加头结点的地址 搜索函数:找x在表中的位置,返回表项位置 定位函数:返回第i个表项在表中的位置 取第i个表项的值 用x修改第i个表项的内容 ...原创 2018-04-23 21:18:47 · 260 阅读 · 0 评论 -
0x00数据结构——C语言实现(多项式)
0x00数据结构——C语言实现(多项式)/*filename:polynomial*/#ifndef POLYNOMIAL#define POLYNOMIAL//一元多项式的表示//Pn(x)=p0 + p1*x + p2*x^2 + ... + pn*x^n/*基本操作: 创建一个有m项系数和指数的一元多项式p 销毁一元多项式p 打印输出 ...原创 2018-04-24 16:29:33 · 2162 阅读 · 0 评论 -
0x00数据结构——C语言实现(栈+后缀表达式计算)
0x00数据结构——C语言实现(栈)栈的实现/* 栈(tack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶(top)。 对栈的基本操作有Push(进栈)和Pop(出栈)。 Functions: (在链表中增加附加头结点的版本) 创建一个空栈 将栈置为空 计算栈长度 返回栈的地址 栈push操作函数 栈...原创 2018-04-25 14:08:33 · 1755 阅读 · 0 评论 -
0x00数据结构——C语言实现(队列)
0x00数据结构——C语言实现(队列)实现/*使用队列时,插入在一端进行而删除在另一端进行队列的基本操作是入队(enqueue),它是在表的末端(队尾(rear))插入一个元素,还有出队(dequeue),它是删除(或返回)在表的开头(队头(front))的元素。 dequeue(Q) enqueue(Q,X) ...原创 2018-04-25 16:39:54 · 1064 阅读 · 0 评论 -
0x04基础套接字
套接字基本概念创建套接字套接字在Linux系统中表现位文件描述符,形式上由一个int类型定义的整数表示,套接字的创建通过下面的Linux系统调用函数实现:#include #include //头文件sys/type.h对于某些C的宏是必须的;sys/socket.h对于定义socket函数是必须的int socket(int domain原创 2018-04-10 15:44:04 · 1581 阅读 · 1 评论 -
C语言三联序列(trigraph sequences)
ANSI/ISO 9899-1990(ansi c90,又称c89)标准将C语言环境(environment)分为两个:1、翻译环境(translation environment)和2、运行环境(execution environment)。在介绍translation environment 中的翻译阶段(translation phases)的第一步时,提到”Trigraph sequence原创 2017-06-13 19:42:19 · 465 阅读 · 0 评论 -
C语言矩阵传递给函数的方法
C语言矩阵传递给函数的方法先看一道题:A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element.Now given an M x N matrix, return True if and only if the matrix is Toeplitz.Exampl...原创 2018-07-02 13:37:40 · 4909 阅读 · 0 评论 -
0x01数据结构——C语言实现(二叉查找树)
0x01数据结构——C语言实现(二叉查找树)二叉查找树是一种特殊的二叉树,使二叉树成为二叉查找树的性质是:对于树中的每一个节点X,它的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。这意味着,该树所有的元素可以用某种统一的方式排序。二叉查找树的C语言实现:b_search_tree.h#ifndef B_SEARCH_TREE_H#def...原创 2018-07-01 14:55:33 · 394 阅读 · 0 评论 -
0x01数据结构——C语言实现(二叉树)
0x01数据结构——C语言实现(二叉树)二叉树(binary tree)是一棵树,其中每个节点都不能有多于两个的儿子。二叉树的一个性质是平均二叉树的深度要比N小得多,这个性质有时很重要。分析表明,这个平均深度为O(N−−√)O(N)O(\sqrt{N}),而对于特殊类型的二叉树,即二叉查找树(binary search tree),其深度的平均值是O(logN)O(logN)O(\log...原创 2018-07-01 14:38:41 · 274 阅读 · 0 评论 -
0x01数据结构——C语言实现(树)
0x01数据结构——C语言实现(树)树(tree): 一棵树是一些节点的集合。这个集合可以是空集;若非空,则一棵树由称为根(root)的节点r以及0个或多个非空的(子)树T1T1T_1,T2T2T_2,…,TkTkT_k组成,这些子树种每一颗的根都被来自根r的一条有向边(edge)所连接。每一棵子树的根叫做根r的儿子(child),而r是每一棵子树的根的父亲(parent)。从节点n1n...原创 2018-07-01 14:37:51 · 646 阅读 · 0 评论 -
最大子序列求和问题
最大子序列求和问题问题描述给定整数A1A1A_1,A2A2A_2,…, ANANA_N(可能有负数),求∑jk=iAk∑k=ijAk\sum_{k=i}^jA_k的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0)。求解算法1:int max_sub_sum(const int A[], int N){ int sum, maxsum,i,j,...原创 2018-06-23 17:29:52 · 947 阅读 · 0 评论 -
分治法求解最大子数组问题
/*最大子数组问题给出每天股票的价格,求出买进和卖出的时间,使得获利最高。输入: P[0~n-1]输出: 买进的时间i和卖出的时间j(0<=i<=j<=n-1)*///分治法求解,将数组P转换为数组A,其中A中每个元素A[i]=P[i]-p[i-1],表示第i-1天买进,第i天卖出的获利。//那么第i天买进第j天卖出的获利可以表示为A[i+1]+...+A[j],...原创 2018-06-23 17:27:53 · 981 阅读 · 0 评论 -
0x04基础套接字-TCP时间服务器
TCP时间服务器1. 流式套接字客户端/服务器编程拟实现一个基本的流式套接字客户端/服务器通信程序。在该程序中,客户端和服务器将按照如下步骤交互:客户端向服务器发出日期时间请求字符串,如:%D %Y %A %T 等。服务器从网络接收到日期请求字符串后,根据字符串格式生成对应的日期时间值返回给客户端。服务器端程序/*****************************************原创 2018-04-10 15:44:54 · 321 阅读 · 0 评论 -
0x01TCPIP网络编程基础
TCP/IP网络编程基础由源端建立一条连接到目的端,需要的信息包括:源IP、源端口、目的IP和目的端口共四个参数,这四个参数又称为套接字对(socket pair),它标识了通过TCP/IP协议通信的双方。客户端/服务器编程模型客户端是指运行于本地主机上的一个程序,该程序请求服务器程序提供某种服务。客户端程序使用远端主机的IP地址和对应的众所周知的端口号与远端主机上的服务器程序进行通信,这一过程称为原创 2018-04-10 15:39:55 · 486 阅读 · 0 评论 -
C语言的发展历史
C语言于1972年11月问世,1978年美国电话电报公司(AT&T)贝尔实验室正式发布C语言,1983年由美国国家标准局(American National Standards Institute,简称ANSI)开始制定C语言标准,于1989年12月完成,并在1990年春天发布,称之为ANSI C,有时也被称为 C89 或 C90。 C语言之父——里奇在学习C语言之前,我们先了解一下C语言的历转载 2017-07-09 19:35:46 · 7877 阅读 · 0 评论 -
ASCII码表
ASCII码表可以看成由三部分组成:第一部分:由00H到1FH共32个,一般用来通讯或作为控制之用。有些可以显示在屏幕上,有些则不能显示,但能看到其效果(如换行、退格).如下表: ASCII控制字符 二进制 十进制 十六进制 缩写 名称/意义 0000 0000 0 0 NUL 空字符(Null) 0000 0001 1原创 2017-07-07 16:41:13 · 376 阅读 · 0 评论 -
常用ANSI C标准库函数
数学函数 应包含头文件 函数名 函数原型 功能 说明 abs int abs(int x) 计算并返回整数x的绝对值 acos double acos(double x) 计算并返回arccos(x)的值 要求x在-1~1之间 asin double asin(double x) 计算并返回arcsin(原创 2017-07-09 13:24:54 · 2110 阅读 · 0 评论 -
C语言关键字
第一类:数据类型关键字A 基本数据类型1. void声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果。2. char字符型类型数据,属于整型数据的一种。3. int整型数据,通常为编译器指定的机器字长。4. float单精度浮点型数据,属于浮点数据的一种,小数点后保存6位。5. double双精度浮点型数据,属于浮点数据的一种,比float保存的精度高,小数点后保存15/16位。B 类型修原创 2017-05-19 20:42:41 · 433 阅读 · 0 评论 -
C语言字符串操作函数
1. strlen概述#include <string.h>size_t strlen(const char *s)说明 函数strlen计算s指向的串的长度返回值 函数是突然冷返回终止的空字符前面的字符的数目2. strcpy概述#include <string.h>char *strcpy(char *s1, const char *s2)说明 函数strcpy把s2指向的串(包括终止原创 2017-05-20 16:25:05 · 260 阅读 · 0 评论 -
C语言字节对齐详解
C语言字节对齐12345不同系统下的C语言类型长度 Data Type ILP32 ILP64 LP64 LLP64 char 8 8 8 8 short 16 16 16 16 int 32 64 32 32 long 32 64 64 32 long long 64 64 64原创 2018-03-22 20:41:27 · 63487 阅读 · 8 评论 -
The Development of the C Language
The Development of the C Language1Dennis M. Ritchie Bell Labs/Lucent Technologies Murray Hill, NJ 07974 USAdmr@bell-labs.comABSTRACTThe C programming language was devised in the early 1970转载 2017-07-09 19:10:04 · 3099 阅读 · 0 评论 -
C语言中的运算符
C语言中的运算符1 优先级 运算符符号及其含义 结合方向与操作数数目 1 () 圆括号;[] 下标运算符;-> 指向结构体成员运算符;. 结构体成员运算符 自左至右 2 ! 逻辑非运算符;~ 按位取反运算符;++ 自增运算符;– 自减运算符;- 负号运算符;* 指针运算符(间接寻址运算符);& 取地址运算符;(type) 类型转换运算符;sizeo原创 2017-06-08 08:27:39 · 720 阅读 · 0 评论 -
标准C语言头文件
ISO C标准定义的头文件24项asserth验证程序断言complexh 支持复数算术运算ctypeh 字符类型errnoh 出错码fenvh 浮点环境floath 浮点常量inttypesh 整型格式转换iso646h 替代关系操作符宏limitsh 实现常量localeh 局部类别mathh 数学常量setjmph 非局部gotosignalh 信号stdargh 可原创 2017-05-19 17:33:25 · 592 阅读 · 0 评论