- 博客(22)
- 收藏
- 关注
原创 Linux基础IO
1.练习open/read/write/close等文件相关系统调用接口,纵向对比fd与FILE结构体 open#include<stdio.h>#include<stdlib.h>#include<fcntl.h>int open(const char *pathname,int flags);int open(coonst char *p...
2018-10-21 20:40:57 243
原创 C++基础
一、类型分类类型分类: 基础类型 自定义类型二、命名空间1.命名空间相当于全局域,用{}括起来一个文件,用namespace给这个文件命名。 std是C++库里的文件,它的使用有两种方法,一种是using namespace std,一种是std::cout<<i<<std::endl(::是域作用解析符)。2.C语言中...
2018-10-21 20:11:47 565
原创 进程控制
进程创建fork函数:在linux中fork函数从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。#include <unistd.h>pid_t fork(void);//f返回值:子进程中返回0,父进程中返回子进程id,出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:- 分配新的内存块和内核数据结构给子进程- 将父进程...
2018-10-09 13:11:59 210
原创 进程调度算法
在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度适用于进程调度,有的调度算法两者都适用。进程调度算法:在系统角度来说,公平性:每个进程(不论优先级)都会有机会被运行;较大的吞吐量。用户角度:及时性:响应速度快;较短的周转时间,不应当让用户等待时间过长。常见的调度算法:1.时间片轮转法:在分时系统中,都采用时间片轮回转法。简单轮回法:系统将所有就绪进程按FIFO规则...
2018-09-26 13:54:47 461
原创 用两个栈实现队列
实现了简单的栈和队列之后,我们可以考虑玩点花样:怎么用两个栈实现一个队列的功能用两个栈实现队列说起来也不是很困难,我们根据栈的特性:后进先出,也就是先进后出,相当于把数据倒过来了,这样我们用两个栈颠倒了两次,也就是实现了队列的功能:先进先出。对这个用两个栈S1和S2形成的队列进行操作时,我们该怎么样操作呢?数据入队列:数据录入相当简单,直接把数据录入栈S1即可。数据出队列:数据出队相...
2018-08-14 10:38:21 167
原创 Linux权限命令小结
1. 进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限. 进入一个目录>cd 需要(x)可执行权限;touch命令需要(w)写权限;ls命令需要(r)读权限;rm和mv命令不需要权限。2. 查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/lo...
2018-07-09 08:25:12 210
原创 Linux第一章命令小结
1. 进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限. 进入一个目录>cd 需要(x)可执行权限;touch命令需要(w)写权限;ls命令需要(r)读权限;rm和mv命令不需要权限。2. 查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/lo...
2018-07-09 08:22:52 231
原创 C语言实现变色贪吃蛇
今天我们实现一下用C语言编写一个能变色、能调速、能调整地图大小、有成就系统、并且能用文件保存分数和成就的贪吃蛇游戏··工具:VS2013语言:C我们先看一下效果:头文件TCS.h#pragma once#ifndef __TCS_H__#define __TCS_H__#include<stdio.h>#include<time.h>#include<win...
2018-06-01 12:34:01 3732 2
原创 函数*数组*指针
指针相关的总结:1.指针数组:一个数组的元素都是指针类型的数据称为指针数组定义一维数组的一般形式为:类型名* 数组名[数组长度];例如:int* p[5];由于[]优先级高,先跟p结合这就是一个数组的形式,然后再跟前面的‘*’结合,’*’表示此数组是指针类型的,每个数组元素都可以指向一个整型变量。2.数组指针:一个指向数组的指针。定义数组指针的一般形式:类型名 (*数组名)[数组的长度];例如:i...
2018-05-21 14:22:23 183
原创 主要元素求法及优化
在一本书中,我看到这样一道题:已知一个数组中有一个元素的出现次数占所有元素个数一半以上,找出这个元素。我想:真简单!是的,两个for循环能解决的问题,的确不能说难。但是,两个for循环的确有些浪费,效率也奇低,有点儿“拿不出手”,所以我开始思索如何简化算法(日常思索):突然我心生一计:既然出现的频率这么高,那我对这个数组排完序,出现在中间的数不就是这个主要元素吗?假设数组为:5 4 3 3 3 2...
2018-05-17 23:55:37 256
原创 可变参数列表
源码剖析1.va_list[html] view plain copytypedef char * va_list定义了一个char * 类型的va_list变量2.va_start[html] view plain copy#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) 将n的长度...
2018-05-14 19:58:15 218
原创 字符串左旋
实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 一看到这题,我想:真简单!直接再创建一个新的字符数组;把原字符串左旋后放进去,再复制回去不就搞定了吗?于是我马上开动写完了代码。......却有种意犹未尽之感:能不能不创建新的数组(字符串)就把字符串进行左旋操作呢?想了想,我灵机一动:我先写一个只左旋一位的函数;左旋多少位我就调用多少次...
2018-05-03 21:57:38 396 1
转载 详述C语言函数调用过程
本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。 先看一个最简单的程序:/*test.c*/#include <stdio.h>int foo1(int m,int n,int p){ int x = m + n + p; return x;}int main(int argc,char** argv){ ...
2018-05-03 21:34:32 269
原创 static总结篇
在了解了很多网络与书籍的资料后;我对static进行了这样一份小小的总结(随时可能会更新)。 一,static全局变量 我们知道,一个进程在内存中的布局如图1所示: 其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。在进程的整个生命周期中,.d...
2018-04-26 14:50:01 168
转载 static的二三事
对C语言中的static关键字的深入理解在阅读一些项目源代码时,我发现很多时候,会把函数和变量声明为static,所以,很好奇为什么要这样做,于是有了下面这篇文章。基本概念使用static有三种情况:函数内部static变量函数外部static变量static函数函数内部的static变量,关键在于生命周期持久,他的值不会随着函数调用的结束而消失,下一次调用时,static变量的值,还保留着上次调...
2018-04-26 14:42:36 258
原创 “简单”的扫雷游戏
废话不多说直接放源码鉴于还没有完全优化所以会持续更新game.h#ifndef _GAME_H__ #define _GAME_H__ #define COL 10 #define ROW 10 #define COLS COL+2 #define ROWS ROW+2 //#include <conio.h> #include<windows.h&...
2018-04-20 13:49:34 316 3
原创 你能下赢大师级难度吗?---不一样的三子棋小游戏!
C语言写出三子棋其实难度不能算很高,难的是你能在里面下得和电脑难分难解;基于这个目的我写出了这个可选难度的三子棋游戏.各位了解一下.....头文件game.h:#ifndef __GAME_H__#define __GAME_H__ #include<stdio.h> #include<stdlib.h>#include<windows.h> #i...
2018-04-20 13:00:45 751
转载 关于C语言中的数组
C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。一维数组的定义方式在C语言中使用数组必须先进行定义。一维数组的定义方式为: 类型说明符 数组名 [常量表达式];其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:int a[10]; /* 说明整型数组a,有...
2018-04-12 21:01:19 292
原创 C:操作符的注意事项们
1.算术操作符:+ - * / % 注意了!!!1) %操作符不能用于浮点数。2)对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3) %操作符的两个操作数必须为整数。返回的是整除之后的余数。2 移位操作符:<< >><< 左移操作符:左边抛弃、右边补0>> 右移操作符:首先右移运算分两种:1)算...
2018-04-03 20:05:28 251
原创 掷骰子游戏成为百万富翁了解一下!
小伙子,玩骰子成为百万富翁了解一下?给你十块钱,如何在玩骰子的情况下赚到一百万?bug依然存在,不过不影响可玩性,还算能正常运行啦>_<#define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <string.h> #include <stdlib.h> #include <tim...
2018-03-27 22:26:03 711
原创 菜鸟的修炼之路
我是一个爱好游戏与软件的大学生,可惜专业的选择有那么一点失误。不过没关系,只要你是愿意学的,不管你是什么身份职业,更不用说是什么专业,都无法阻止你的自我提升。所以,这第一篇博客,我写来勉励自己:希望能在这条路上越走越远~~我学习编程,可能是为了一种自由的创造感,编写的程序像是你创造的宇宙:一切秩序与规则是由你说了算的。所以我选择成为一名开发工程师,这是我的一个(小)目标。既然有了目标,自然接下来就...
2018-03-23 13:35:00 282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人