自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

higher_and的博客

C语言基础

  • 博客(24)
  • 收藏
  • 关注

原创 僵尸进程和孤儿进程的模拟和处理

进程的创建创建一个进程的一般工作: 1.分配一个进程PID(0 - /proc/sys/kernel/pid_max) 0号进程是内核进程 ,它创建1号进程。 0号还将进程从物理内存搬到磁盘,和从磁盘搬运到物理内存 进程是树状结构 2.分配(PCB)结构体,通过页目录,页表,物理内存三级拷贝父进程中的绝大部分内容 ...

2018-07-11 15:50:33 230

原创 Linux中进程的认识

进程概念进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实...

2018-07-11 14:12:25 277

原创 C语言实现链表

链表是什么链表是一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称存储单元为一个节点。 接下来我们尝试定义一个链表:typedef struct ListNode{ struct ListNode* pNext; int data;} ListNode;然后我们来理解链表中单双链表,有循环无循环和带头链表跟不带头链表的区别单双链表 单链表...

2018-06-11 17:03:28 328

转载 Linux文件命令初步认识

Linux下的重要目录/proc这个目录采用一种特殊的文件系统格式,其中包含了全部虚拟文件。他们并不保存在磁盘中,也不占据磁盘空间。当看到它们时,实际上看到的是内核里的的信息,这些文件帮助我们了解系统内部的的信息。/sys 文件系统访问Linux内核/SElinux伪文件系统kernel子系统通常使用的命令/bin可执行二进制文件的目录,如常用的命令ls,tar,mv...

2018-06-08 16:06:32 122

原创 时间复杂度和空间复杂度

算法算法是指的解决特定问题求解所用的步骤,具有以下特点:输入:算法需要具有零个或者多个输入。输出:有一个或者多个输出。有穷性:算法在执行有线的步骤后,自动结束不会出现无限循环的情况,并且每一个步骤都在可接受的时间内完成。确定性:算法的每一步都必须含义明确,不能模棱两可出现不确定性。可行性:算法的每一步都必须可行,不能出现无法运行的情况。以上主要是算法的一些特点,从这些特点可...

2018-05-25 16:59:07 728 1

原创 C语言实现通讯录基本功能

通讯录基本功能本次实现的通讯录主要包含以下功能: 1. 增加新联系人 2. 通过姓名删除联系人 3. 通过姓名查找联系人 4.修改某个人的某项信息 5. 显示通讯录所有人的信息 6. 根据姓名对联系人进行排序main函数main函数通过do-while循环让用户选择功能入口。#include <stdio.h>#include "contact.h"#i...

2018-05-21 16:25:39 1288

原创 结构体枚举与联合

结构体struct- 基本介绍 struct是结构体的关键字,它将一些相关联的数据打包成一个整体,这些相关联的数据可以是不同的类型。它们被称为结构体的成员,结构体的成员可以是标量、数组、指针、或者是其他结构体。 - 结构的声明 假设我们要建立学生档案,要纳入学生的姓名,年龄和性别三个内容。那么我们可以通过建立一个结构体来实现这个过程。struct student{ char...

2018-05-17 10:01:03 1671 3

原创 关于指针和数组

指针数组指针数组,从名字就可以看出,指针数组本质上数组,组内元素由指针构成。下面列出几种常见的指针数组类型用来加深大家对指针数组的理解;int *a[10];char *b[10];char **c[10];数组指针数组指针是指针,表示一个指向数组的指针,在32位系统下占4个字节。下面列出的就是数组指针。int (*p)[10];int (*)[10] p2;...

2018-05-10 16:37:04 133

原创 可变参数列表的详细解析

可变参数列表步骤的常规介绍在我们平常使用可变参数列表的过程总,通常需要以下几条指令来完成功能,首先我们把这几条命令结合系统的定义来解读一下。 1.首先是va_list这个命令,等价于char*,* 为了后面的内容便于理解,这里我们需要在char的后面加入一个被创建的指针arg,也就是char*p,最原始的形态就是va_list p; 2.接下来是va_start的功能,,是通已知的参数来让...

2018-05-01 15:46:37 179

原创 通过简单函数来了解函数的栈帧

函数的栈帧定义在函数的调用过程中为函数开辟的栈空间用于本次函数的调用中临时变量的保存,现场保护。这块栈空间被称为栈帧。创建函数为了了解函数调用栈空间的详细过程,我们先写一段代码,通过代码的反汇编来观察函数的调用过程中汇编指令都做了什么。首先,写入下面的函数:int Add(int x, int y){ int z = 0; z = x + y; ...

2018-04-18 20:23:33 182

原创 三子棋的c语言程序设计

三子棋的c语言设计设计思路三子棋的玩法主要为,在一个3*3的棋盘上,两线先后执子下棋,然后如果有一方的三个棋子落在同一行或者同一列,或者一斜行,都算是这一方获胜。所以在设计三子棋人机对战小程序的时候,首先要考虑在这个程序中需要我们实现什么功能。我认为想要作为一个游戏,首先应该设计进入页面,让玩家自己选择是退出游戏还是进入游戏。选择进入游戏之后,需要有游戏棋盘的加载,然后是玩家下棋,每次下完...

2018-04-15 11:12:00 1099 1

原创 数组的相关知识个人小结

数组的内容主要包含了创建和使用两方面,而通常使用的数组又分为一维数组和二维数组两种。1、数组的创建和初始化一维数组的创建为    type_t    arr_name   [const_n]在这里面,type_t指数组的元素类型,如int,char,double等;const_n是一个常量表达式用来表示数组的大小。数组的创建也可以通过初始化的形式来实现,即在创建数组的同时给数组的内...

2018-04-04 16:17:39 141

原创 打印任意数值的乘法口诀

#define _CRT_SECURE_NO_WARNINGS#include#includeint main(){ int i = 0; int j = 0; int n = 9; printf("请输入数值:>"); scanf("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++)

2018-04-02 12:03:08 170

原创 利用函数判断一个数是否为素数

#define _CRT_SECURE_NO_WARNINGS#include#includeint prime(int x){ int y = 0; for (y = 2; y < x; y++) { if (0 == x%y) { return 0; } } if (y == x) { return 1; }}int main(){ int

2018-04-02 11:51:29 1117

原创 用C语言输出一个整数的每一位

#define _CRT_SECURE_NO_WARNINGS 1#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){ int i = 0; int num = 0; scanf("%d", &amp;num); printf("该数从最低位到最高位分别为"); while (num) { i = num % 10;      ...

2018-03-30 23:34:08 1495

原创 C语言的操作符总结

分类操作符的分类主要有:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员算术操作符+     -     *     /      %需要注意的是:1.除了%操作符之外,其他的几个操作符都可以作用于整数和浮点数。2.对于/操作符而言,如果两个操作数均为整数,那么执行整数除法。而两个操作数中只要有一个是浮点数,那么执行的就是浮点数除...

2018-03-30 14:52:26 179

原创 折半查找法

折半查找法的使用仅适用于有序数列,必须为递增或者递减关系#define _CRT_SECURE_NO_WARNINGS 1#include &lt;stdio.h&gt;#include &lt;math.h&gt;#include &lt;stdlib.h&gt;#include &lt;time.h&gt;int main(){int arr[]= { 1, 2, 3, 4, 5, 6, 7,...

2018-03-28 17:30:39 274

原创 猜数字游戏

#define _CRT_SECURE_NO_WARNINGS 1#include #include #include #include void menu()          //载入菜单                                       {printf("*************************\n");printf("**

2018-03-28 16:02:33 457

原创 用c语言在屏幕上打印出一个菱形

#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;string.h&gt;int main(){ char arr1[] = "*************";     //因为是字符类型的输入,所以是char char arr2[] = "      *      "; char arr3[] = "             ";..

2018-03-26 21:48:07 1072

原创 计算n的阶乘

#include &lt;stdio.h&gt;#include&lt;windows.h&gt;#include &lt;stdlib.h&gt;int main(){ int n = 0; int i = 0; int ret = 1; scanf("%d", &amp;n); for (i = 1; i &lt;= n; i++) { ret = ret*i; } printf("%d",...

2018-03-25 15:40:20 962

原创 数出1到100的所有整数中含有9的个数。

#include #include int main(){int i = 0;int count = 0;for (i = 1; i {if ((i % 10) == 9)       //利用模运算算出个位为9的数{printf("%d ", i);count++;          //用count来统计出现了多少个数字}if (i / 10

2018-03-25 14:48:26 1973

原创 计算1-1/2+1/3-1/4+……+1/99-1/100的值

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){int i = 0;double sum = 0;                               //因为输出的结果是浮点数,所以要以double的形式输入int flag = 1;for (i = 1; i &lt;= 100; i++){sum...

2018-03-25 14:23:17 11747

原创 交换两个数组的内容(数组一样大)

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){ int arr1[] = { 1, 2, 3, 4 }; int arr2[] = { 5, 6, 7, 8 }; int arr3[] = { 0, 0, 0, 0 }; //建立一个空数组用来过渡 int i = 0; p...

2018-03-23 22:09:50 230

原创 在code路上的第一天

  今年已经大三了,作为一名电子科学与技术专业的学生,以后如果按照专业的培养方向就业的话将会是在厂房中参与生产制造行业。但是这样的生活方向感觉前景并不怎么美好。因为在当前的社会环境下,IT行业对我们的生活影响越来越大。我们的身边因为互联网的到来产生了巨大的变化。外卖,网约车,共享经济,网购等行业的飞速发展就像是高楼大厦的拔地而起。这样的景象与千千万万个码农的背后付出有着不可或缺的关系。正因为这样,...

2018-03-18 23:35:17 150

空空如也

空空如也

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

TA关注的人

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