自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Makefile编译多个文件

all:easy_select tcp_select .PHONY:all easy_select:easy_select.c gcc $^ -o $@ tcp_select:tcp_select.c gcc $^ -o $@ 目标:依赖文件   # tab命令       #指定如何从依赖文件生成目标文件   # make指令的时候...

2018-08-16 17:09:06 1746

原创 逆波兰表达式

逆波兰表达式在维基百科上的解释:逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。我们中学学习的表达式叫中缀表达式例如:4+(2*5)-6逆波兰表达式叫后缀表达式,操作符在操作数之...

2018-08-10 16:21:42 2680 1

原创 UDP/TCP服务器的简易实现

UDP协议:udp协议中文名称叫用户数据报协议我们首先回忆一下大端和小端的问题:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低...

2018-08-07 17:24:21 1314

原创 VS不能用scanf的解决办法

在新版VS中scanf函数被报错为不安全的函数,我们可以在.c的文件的开头加入这个语句就可以正常使用的scanf函数进行输入:#define _CRT_SECURE_NO_WARNINGS 1每次都要手动输入未免太麻烦了一些我们可以设置成每次自动输入: 打开VS安装目录的这个位置,使用notepad++(一定要用notepad++打开否则没有权限修改)打开newc++file.cpp文件...

2018-08-06 13:25:24 10145 2

转载 MAC上远程传输文件

使用scp命令实现上传下载1、从服务器上下载文件 scp username@servername:/path/filename /Users/mac/Desktop(本地目录)例如:scp root@123.207.170.40:/root/test.txt /Users/mac/Desktop就是将服务器上的/root/test.txt下载到本地的/Users/mac/Desktop目录...

2018-07-24 15:28:26 2179

原创 初识Linux 指令

基本指令ls:ls [选项] [目录或文件] 功能:对于目录列举出目录下的所有子目录及文件,对于文件列举出文件名及其他信息。 -a:列举出目录下所有内容包括隐藏文件 -l:列举出目录的详细信息 -C:多列显示输出结果。这是默认选项; -s:显示文件和目录的大小,以区块为单位 pwd:显示用户当前所在目录 cd:改变工作目录,将当前工作目录改到指定的目录下。 如:cd ...

2018-07-23 17:53:42 414

原创 Linux权限详解。

在理解权限之前我们要知道linux中的用户组:在Linux中每个用户都属于一个组,Linux中每个文件都都有所有者、所有组、其他组。这几个概念我们可以用现实中的例子来理解。比如说你有一本书,那么你就是这本书的所有者,你有这本书的最大权限,你可以使用,借出这本书,赋予这本书其他权限,你们班的其他同学和你可以看成一个组,其他班的同学可以看成不同组的同学。现在你有这本书最大的权限,你也可以将这本书和你的...

2018-06-09 14:21:11 11218

原创 Linux入门之shell命令的认识

初识Linux系统:linux的诞生:这里我就复制一段维基百科的介绍。Linux是一种自由和开放源代码的类UNIX操作系统.该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地...

2018-05-31 16:58:15 356

原创 数据结构初章之时间复杂度/空间复杂度

第一次认识数据结构数据结构:在计算机科学中,数据结构是计算中存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。典型的数据结构——二叉树:在了解深层次数据结构之前还要理解一个概念——算法:在计算机科学之中,为任何良定义的具体计算步骤的一个序列,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的...

2018-05-28 16:30:08 256

原创 实现通讯录(使用动态内存存储)

实现一个通讯录通讯录可以用来存储联系人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人头文件Contact.h#pragma once #include<stdio.h> #includ...

2018-05-25 15:07:44 661

原创 C语言实现电话簿

实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 头文件Contact.h#pragma once#include<stdio.h>#inc...

2018-05-13 21:21:30 6735

原创 C语言之结构体枚举联合的理解

一、结构体        结构体的定义:结构体是C语言中一种可以自定义的数据类型。结构体就像名字一样,是一些结构的集合。结构是一些值的联合,结构的每个成员可以是不同类型的变量。结构体的声明:        有名字的结构体,创建一个学生结构体: struct Stu { char name[20]; int age; char sex[5]; ...

2018-05-13 16:09:29 327

原创 C语言之指针和数组的深度理解

一、数组名表示整个数组时的情况:1.sizeof函数计算大小时,sizeof(数组名),这时数组名表示整个数组,如果括号中有其他的东西那么括号中表示的是数组首元素的地址。2.&数组名,这时数组名表示整个数组。二、数组和指针指针数组:指针数组是一个存放指针的数组。本质是数组。指针数组的创建过程如下:int *arr1[10]char *arr2[4]数组指针:数组指针是指向数组的指针。本质是...

2018-05-01 17:04:55 336

原创 指针的理解

指针:在计算机科学中,指针是编程语言中的对象,利用地址,他的值直接指向存在电脑存储器中另一个地方的值。#include<stdio.h>int main(){ int a = 10; int *p = &a; system("psuse"); return 0;}指针的图示:指针是一个变量,图中p指针指向变量a的地址。指针是一个变量同样有各种各样的类型,比较常用的...

2018-04-30 20:03:41 266

原创 main函数的理解与运用

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。在Linux下运行:代码如下:gcc编译gcc text.c运行a.out文件:...

2018-04-25 15:56:46 458

原创 C语言可变参数的理解

在C语言中通过引用头文件#include<stdarg.h>可以实现可变参数的程序求n个数的平均值函数:#include<stdio.h>#include<stdarg.h>int average(int n, ...){ va_list arg;//char *arg; int i = 0; int sum = 0; va_start(arg, ...

2018-04-17 23:55:10 211

原创 C语言实现扫雷游戏

头文件:#pragma once#ifndef __LEI_H__#define __LEI_H__#define ROW 10#define COL 10#define MINE_COUNT 10 //设置雷void set_mine(char mine[ROW + 2][COL + 2],int row,int col);//显示void display(char boar...

2018-04-09 17:43:32 234

原创 初识Linux

Linux下的命令:s //list 列出当前文件夹的所有文件 cd //change directory 更改(切换)目录 mkdir //make directory 创建目录(文件夹) rm //remove 删除文件(-f) mv //move 移动文件 touch //创建文件 pwd //print work directory打印当前工作目录 2.在linux环境实践,使用vim编写...

2018-04-09 10:31:38 190

原创 C语言实现三子棋小游戏

首先创建头文件对函数进行申明#pragma once#ifndef _SANZIQI_H_#define _SANZIQI_H_#define ROW 3#define COL 3//初始化void InitBoard(char arr[ROW][COL], int row, int col);//棋盘void Display(char arr[ROW][COL], int row...

2018-04-08 22:30:26 174

原创 C语言数组

数组:一组相同类型元素的集合数组有一维数组和二维数组一维数组:数组的创建:int arr1[10]数组的初始化:int arr1[10]={"1,2,3"};int arr2[]={1,2,3,4};int arr3[5]={1,2,3,4,5};char* p="ABCD"此时相当于p指针指向ABCD数组的地址计算数组大小可以用sizeof函数如:int sz=sizeof(arr)/sizeo...

2018-04-03 20:01:08 224

原创 C语言操作符

C语言操作符分类:算数操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员算数操作符:+-*/%移位操作符:<<左移操作符    >>右移操作符其中左移操作符为左移抛弃右边补零。右移操作符分为逻辑右移:左边补零右边抛弃算数右移:左边补符号位,右边抛弃移位操作符不能移动负数位如{int num = 10;num&gt...

2018-03-30 20:15:29 773

原创 学习编程第一天

    我是物联网15级的一名同学,在大学玩了两年半以后我发现在学校老师教的编程知识完全不够工作所需要的知识,所以我开始系统学习C语言的相关知识。       都说C语言是一切别的编程语言的基础所以我开始从C语言学习,我在大学前两年从来没有花时间仔细研究代码,现在到了大三下学期我只能加倍努力,努力追赶上别人的脚步。前期学习编程会是一个枯燥的过程,但是我相信只要我付出努力,每天多敲代码,我会慢慢追赶...

2018-03-19 00:14:13 215

空空如也

空空如也

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

TA关注的人

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