自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注【PostgreSQL源码学习&研究】

基于PostgreSQL V13.2版本,从源码角度,全方位、图文并茂地剖析各机制的背后设计、以及底层的实现原理

  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 后台实现查找附近的人接口

后台实现查找附近的人接口思路: 1.对于两个坐标经度和纬度,都是由移动端返回的数据,后台只需要把数据存入数据库即可 2.建一个数据表与用户表关联 3.判断表里的该用户是否存在经纬度,若不存在,则添加,若存在,则当用户点击查找附近的人时,更新数据库的数据 4.当数据库存在经度纬度时,由移动端传经度,纬度,根据距离公式,计算出距离 5.对距离进行由近及远的排序,对性别进行排序仅此思路,不清楚的

2017-04-26 23:20:16 1511 2

原创 c缺陷与陷阱

不言而喻,《c缺陷与陷阱》是一本c/c++中的经典之作,文章简洁而不简单;作者在描述每一个复杂问题时,都尽量地用质朴而又形象的语句组织和描述,使得看似晦涩难懂的问题尽量的简单化,让人通俗易懂。其实这本书籍很早之前,就想拜读之,由于时间因素,一致拖到现在才终于抽出时间出来把它看完。虽然这本书籍零几年的时候就已经出版了,但是现在仍然在不断的印刷发行,没有绝版,由此可以看出本书的作用和地位绝对时不可忽视的

2017-04-26 19:18:05 720 2

原创 C语言函数memcpy(),memmove(),memcmp()用法详解

I.memcpy()和函数头文件:#include <string.h>函数原型:void *memcpy(void *dest, const void *src, size_t n);功能:拷贝src所指的内存内容的前n个字节复制(拷贝)到dest所值的内存地址上。参数: dest:目的内存首地址 src:源内存首地址,注意:dest和src所指的内存空间不可重叠 n

2017-04-26 15:41:35 1634

原创 c语言函数strchr(),strstr(),strtok()

I.函数strchr()函数头文件:include <string.h>函数原型:char *strchr(const char *s, int c);功能:在字符串s中查找字母c出现的位置参数: s:字符串首地址 c:匹配字母(字符)返回值: 成功:返回第一次出现的c地址 失败:NULL#include <stdio.h>#include<string.h

2017-04-25 23:21:19 1740

原创 c语言函数sscanf()和sprintf()

I.sscanf()头文件:#include<stdio.h>sscanf()函数用于从字符串中读取指定格式的数据,其原型如下: int sscanf (char *str, char * format [, argument, ...]);参数说明:参数str为要读取数据的字符串;format为用户指定的格式;argument为变量,用来保存读取到的数据。函数返回值:成功则返回参数数目,失

2017-04-25 18:32:11 628

原创 【004】单链表(逆序)

1 .单链表的逆序操作是链表中的一个重要操作,也是面试中不可缺少的一个环节,几乎许多涉及到链表的面试题中都会提到如何将一个链表进行逆序的操作考点;下面采用“迭代循环”的方式来实现将一个链表进行逆序,如链表中原来的各节点值分别为:A B C D E 逆序后打印为:E D C B A----------------------------------

2017-04-23 17:43:51 3017

原创 【002】 栈顺序存储(三)

#if 0-------------------------------------------------------- 将栈的返回类型和参数封装为void *类型 ---------------------------------------------------------#endif ------------------------------------------------

2017-04-22 16:59:21 315

原创 【005】回调函数于链表中寻找特定值

#if 0------------------------------------------------ 新增功能:采用回调函数在链表中查找某值,并且返回值指针-----------------------------------------------------------------------------------------------/**链表中寻找一个特定值,返回该节点值指针

2017-04-22 15:33:43 3009

原创 【001】 单链表(四)

/*********************************************************说明:结构体嵌套结构体*******************************************************//*************** LinkList.h *****************/#pragma once#include<stdio

2017-04-21 23:28:31 321

原创 【003】 动态数组

/********************************************* Function 根据需要动态分配内存空间*************************************************//*********** DyNaArray.h ****************/#pragma once#include <stdio.h>#inclu

2017-04-21 18:10:37 492

原创 【044】 栈顺序存储(二)

/*******************************************-------------- 顺序栈的遍历 ------------------------------- 改进:不使用变量i -----------******************************************//**** 遍历栈 ****/void ListStack(SeqS

2017-04-20 10:33:18 331

原创 【043】 栈顺序存储(一)

一. 栈的概念 栈为一种可以实现“先进后出”的存储结构,凡是对数据的处理具有“后进先出(LIFO)”的特点,都可以用栈这种数据结构来操作。栈也是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系。只不过它是一种特殊的受限线性表而已。栈的特殊之处在于限制了这个线性表的插入和删除的位置,它始终只在栈顶进行。这也就使得:栈底是固定的,最先进栈的只能在栈底。二 . 栈操作  栈的插

2017-04-20 01:33:24 746

原创 c语言之递归调用

递归调用,简而言之就是函数调用自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归的原理比较简单,但是想要合理并且高效的应用起来不是那么容易,因为它的思想比较难,而且稍微控制不好,便会导致程序无限循环,浪费内存资源,直到最终全部资源被消耗掉而宕机。先拿个最为简单的递归调用函说明:/**** 打印结果: ****//**** n = 1 ****//**** n = 2 ****/

2017-04-19 17:39:05 3551 1

原创 【042】 输出链表最大值节点

/***********************************************************************新增加功能:输出链表中值的最大节点************************************************************************/ /****求链表中的值最大的节点****/void SListNo

2017-04-19 14:56:45 2613

原创 【006】单链表翻转逆置

在单链表(一)的基础上新增加了一些功能:********************************************************************************SLIST.h************************************************************************************ /****删

2017-04-18 22:48:33 740

原创 【041】 单链表创建、插入、删除、遍历,打印

/****SLIST.h****/#pragma once#include <stdio.h>#include <stdlib.h>#include <string.h>#define true 1#define false 0typedef int ElemType;typedef struct Node { ElemType id; //数据域

2017-04-18 16:33:19 932

原创 c语言之文件加密

功能:根据用户输入的路径和文件进行加密; 加密方式:按位“与” 附:因为时间缘故,解密部分还没有调试好;加密部分没有问题,文件经过加密之后成为了乱码。#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 100#define LENGTH 10/******加密文件*******/void PasswdFile

2017-04-16 23:15:10 616

原创 编写一个函数。其参数为一个字符串,函数删除字符串中的空格

/**编写一个函数。其参数为一个字符串,函数删除字符串中的空格**/#include<stdio.h>#include <string.h>#include<stdlib.h>#include <ctype.h>char *DeleteBlank(char *str,int len) { char *mPtr = NULL; int i,j=0;

2017-04-15 23:42:52 5492

原创 c语言之堆区二维数组

/**1. 堆区二维数组练习*a) 在堆区申请空间,int a[3][4]*b) 通过循环给每一个元素赋值,以及打印每个元素的值*c) 使用完,需要释放堆区空间*/#include<stdio.h>#include<stdlib.h> /*********数组指针***********/void ListArray(int (*mPtr)[4],int len) {

2017-04-15 23:14:51 1275

原创 C语言之结构体嵌套一级指针和二级指针

指针是C语言的精华,也是c中最难的部分;为了锻炼和提高自己对指针的理解,特在结构体中嵌套一级指针和二级指针来加深对。#include<stdio.h>#include <string.h>#include<stdlib.h>#define false 0#define true 1//结构体类型,每个导师有三个学生typedef struct Tea { char *tNa

2017-04-15 21:54:31 4518 2

原创 IPC之信号(一)

信号概述: (1)信号是unix系统响应某些状况而产生的事件,进程收到信号时候会采取响应的措施; (2)信号是进程通信中唯一的异步通信机制;同时信号也是一种软件中断; (4)信号的中断可以分为两种“软中断”和“硬中断”;所谓“硬中断”是指:由硬件的原因引起(比如按下键盘上的ctrl+c(会产生SIGINT) 或是按下ctrl+\(SIGQUIT) 及其他硬件故障灯原因);“软中断”是指:由软件

2017-04-15 17:38:20 468

原创 c语言之多级指针的应用

/* 功能: 1、把指针数组p1的字符串取出来, 2、把二维数组buf2的字符取出来, 3、上面的字符串放在 p3,p3 是在堆区指针数组(每个元素同时又指向堆区) 4、对 p3 中字符串进行排序,通过 strcmp() 进行排序 参数: p1: 指针数组首地址,char *p1[] = {"aa", "cc

2017-04-14 22:42:44 1483

原创 c语言函数strstr分析

#include <string.h>char *strstr(const char *haystack, const char *needle);功能:在字符串haystack中查找字符串needle出现的位置参数: haystack:源字符串首地址 needle:匹配字符串首地址返回值: 成功:返回第一次出现的needle地址 失败:NULL自己写代码实

2017-04-13 16:33:25 624

原创 linux进程间通信之管道

我们知道,进程间通信方式有6种:分别是“管道、信号、信号量、消息队列、共享内存和网络socket编程”。下面着重对进程间的通信方式之管道作一详细讲解:在讲解管道之前,先对linux进程进程通信中的一些相关概念作一描述:1.使用linux系统,以及在linux系统上面进行应用程序编程,接触最多的是“进程”二字;何为进程?进程与程序的区别?首先:程序是存放在磁盘文件之中的可执行文件,是静态的;而进程是动

2017-04-12 17:10:18 479

原创 利用sleep函数(Linux平台)结合结构体,编写一个模拟时钟

struct Time {//表示时间的数据类型 int hour; int minute; int second; }; 提示: 1)#include <unistd.h> sleep(1); //以秒为单位 2) fflush(stdout); //人为刷新打印缓冲区 "\r",转义字

2017-04-03 19:48:19 1163

原创 c语言实现打字小游戏

1、随机数相关函数 //所需头文件: #include <stdlib.h> //srand(), rand() #include <time.h> //time() srand((unsigned int)time(NULL)); //随机种子 rand(); //随机数 产生26个随机字母--->'A'+rand()%26;'a'+rand()%26;

2017-04-02 00:13:39 5342

原创 设计一个程序,为二维数组动态的分配内存空间并且释放内存空间;数组元素的赋值结果如下:

0 1 21 2 32 3 4#include<stdio.h>#include<stdlib.h>int main(void) { // int array[3][3]={0}; //二级指针,指向指针的指针 int **pArray2; //iIndex1,iIndex2分别用来控制二维数组的行和列 i

2017-04-01 00:39:37 994

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除