自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 数组名和数组名取地址的区别

数组名和数组名取地址的区别 在日常编码过程中,特别是C环境下会经常遇到这两种情况; 这篇博客将会对其进行总结: 首先,我们定义了一个数组int a[] = {0,1,2,3,4,5,6,7,8,9}; 不难理解a[0] = 0; a[1] = 1; a[2] = 2; a[3] = 3; … …以此类推a[9] = 9; 即0x0100存放了0这个数据、...

2018-09-01 14:14:22 7225 3

原创 有关时间复杂度,空间复杂度通俗的理解

有关时间复杂度,空间复杂度通俗的理解 今天,在复习C语言知识时,碰到了一个非常有趣的题目,题目如下: 一个数组中除了两个数字之外,其余数字均出现了两次,如{1, 2, 3, 4, 5, 3, 2, 1}。查找出这两个只出现一次的数字,要求如下:时间复杂度为O(n),控件复杂度位O(n)。 当笔者看到这道题目的时候,就被“时间复杂度为O(n),控件复杂度位O(n)”所困惑

2018-01-26 22:58:02 2315

原创 C++中的const的用处

本篇主要针对const的重载用法进行讲解const 返回类型 函数名 (const 函数参数) const 首先,我们可以从const出现的位置来入手:const 返回类型 函数名 (const 函数参数) const 如上述,const一共可以出现在三个位置,我们先讨论出现在前两个的const,显而易见,第一个const修饰的是函数返回值,表示该函数返回一个常量,必须

2018-01-10 15:45:42 236

原创 用TCP实现简易版聊天室

用TCP实现简易版聊天室 TCP相较于UDP和select有着传输稳定的优点。 介于之前用select已经实现过,所以本程序只有注册,登录,忘记密码,私聊,群聊,注销,退出等功能 当然,tcp也是可以实现之前能用select实现的所有功能。 废话不多说,上代码: 头文件#ifndef _CHAT_H_#define _CHAT_H_#include <stdio.h>#

2018-01-04 17:35:54 2160

原创 用select实现基于C/S架构的聊天室

用select实现基于C/S架构的聊天室1.项目要求 a) 项目需求总体描述 01. 采用Client/Server架构 02. Client A登录聊天服务器前,需要注册自己的ID和密码 03. 注册成功后,Client A就可以通过自己的ID和密码登录聊天服务器 04. 多个Client X同时登录聊天服务器之后,与其他用户进行通讯聊天 05. Client A

2018-01-04 17:22:44 1380

原创 嵌入式数据库——sqlite

嵌入式数据库——sqlite1.sql语法 sql语法比较简单,大致可以分为4类: 1.数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHERE <查询条件> 2.数据操纵语言DML 数据操纵语言DML主要有三种形式:

2017-12-15 15:46:15 1396

原创 Linux网络编程基础

Linux网络编程基础1.TCP/IP理论基础 标题虽然是TCP/IP,但是不仅仅只包含这2个协议,而是因为这2个协议比较重要,地位比较高。首先,先介绍点基础知识: 协议栈,Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现。 协议介绍,对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介

2017-12-10 20:29:04 337

原创 线程详解

线程详解1.进程和线程 在Linux的学习过程中,进程和线程的区分以及各自的优缺点,困扰了很大一部分的人,同样,笔者作为广大吃瓜群众的一员,也被这个问题所困扰。 所以呢,今天特别写了这篇博客来记忆一下。 首先呢,我们从定义上了解一下进程和线程: 进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。进程是程序执行时的一个实例,即它是程序已经执行到某种程

2017-12-09 19:06:30 220

原创 Linux进程通信(二)

Linux进程通信1.5共享内存 共享内存是被多个进程共享的一部分物理内存.共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。 共享内存实现分为两个步骤: 一、创建共享内存,使用shmget函数。 二、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。int shmget (

2017-12-07 19:52:09 119

原创 Linux进程通信(一)

Linux进程通信 一个大型的应用系统,往往需要众多进程协作,因此进程间的通信便显得格外的重要了。1.进程间通信方式概述 进程间通信就是在不同进程之间传播或交换信息,由于进程用户空间之间是互相独立的,不能互相访问,所以只能通过共享内存区来通信。 除此之外,双方也可以通过访问都能访问的外设来达到信息的交换,例如磁盘。当然,也有通过“注册表”或其他数据库中某些表项和记录交换信息,但一般都

2017-12-07 19:50:43 168

原创 linux 文件编程

linux 文件编程1.Linux系统调用及用户编程接口(API)a.系统调用 所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。 由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许

2017-12-06 21:58:28 212

原创 Linux进程(一)

Linux 进程控制编程1.进程a.进程是什么? Linux是一个多任务的操作系统,也就是说,在同一个时间内可以有多个进程同时执行。那么,Linux是如何实现多进程同时执行的呢?Linux 使用了一个被称为“进程调度”的方式。首先,为每个进程指派一定的运行时间,通常以毫秒为单位,然后依照某种规则,从众多的进程中挑选一个运行,在此时间内,其他进程为等待状态。当正在运行的程序时间耗尽,或者运行结束,

2017-12-06 00:06:06 327

原创 linuxC语言项目——通讯录

Linux,C语言项目——通讯录; 通讯录是许多手机等电子产品必带功能之一,在有了数据结构中链表的相关知识后,便可以自己制作一个简单的通讯录了; 1.制作通讯录的一些基础知识;a.结构体;结构体是什么?说白了结构体是一种类型,它可以是一些其他类型的集合体;打个比方,数组是它元素类型的集合体,int a[10]是int类型的集合体;同理,结构体是它自身一些元素类型的集合体;为

2017-11-24 21:48:04 968 1

原创 linuxC语言数组基础知识

Linux小白日记-C语言篇数组1.一维数组1.1.一维数组的定义格式为:类型说明符  数组名[常量表达式];  例如:  int a[10];  它表示定义了一个整形数组,数组名为a,有10个元素。1.2.在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。1.3.常量表达式中可以包括常量和符号常量,但不能包含变量。注意:C

2017-11-24 21:44:20 531

原创 linux小白日记-C语言篇

Linu小白日记(四)C语言基础知识1.数据基础基础类型首先,放一张图,基本上囊括了前期C语言学习的所有数据类型了;如图所示,在C语言中,如果需要用到变量,就必须先定义变量,而定义变量就必需规定其类型,因为不同类型的变量内存会为其分配不同大小的内存空间。这也是C区别于其他语言,重要的一点之一。举个例子:int a; char c; 2.基本数据类型所占内存的

2017-11-16 20:10:42 243

原创 Linux小白日记(三)shell基础知识篇

Linux小白日记(三)shell脚本Shell是linu系统重要的组成部分之一,也是我们平常得力的助手。Shell语法 1.所有shell脚本的第一行的固定格式,#!/bin/sh(bash);这其实是告诉机器如何解析这个脚本。 2.shell变量shell中的变量没有类型一说,所以不用申明,直接赋值就行,赋值格式:greet=hello,即把hello赋值给gree

2017-11-10 12:50:18 341

原创 linux工具

Linux 小白日记(2)在本文中将介绍一些常用的linux的工具。 NO.1 vi/vim编辑器Vim编译器是linux最为重要的工具了,是平时敲代码的工具,c/c++所有的源码都可以通过这个编辑器生成。首先我们需要做的是在命令行输入vim  /etc/vimrc,来设置一些便利的参数。进入到vimrc后,设置以下参数:set autoindent 下行自动缩进;

2017-11-08 20:50:40 182

原创 Linux初学者日志

Linux 小白日记作为一名Linux的初学者,在第一次接触Linux后,就对其产生了很浓厚的兴趣。在学Linux之前,一直用的都是Windows系统,对我来说,两者最大的差别就是windows系统所有的操作方式都十分直观易懂,没有太多条条框框的拘束,而Linux则多了许多的必需的“法则”,学起来也不如Windows那般简单;但是,既然Windows这么好,为什么还要学Linux呢?

2017-11-06 16:21:18 417

空空如也

空空如也

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

TA关注的人

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