- 博客(33)
- 收藏
- 关注
原创 双向循环链表
#ifndef _LINKLIST_H#define _LINKLIST_H#define FAILURE 10000#define SUCCESS 10001#define TRUE 10002#define FALSE 10003typedef int ElemType;struct node //双向循环链表{ElemType data;...
2020-04-16 18:19:17
299
转载 VC++ Sleep函数原理及Sleep(0)的使用(文章较深入但通俗易懂)
我们可能经常会用到 Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2012-12-16 3:37:40,如果我调用一下 Thread.Sleep(1000) ,在2012-12-16 3:37:41的时候,这个线程会 不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去...
2019-05-05 17:32:34
2861
转载 C语言malloc()函数与calloc()函数的区别
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc() 函数有一个参数,是需要分配空间的大小(单位是字节) calloc()函数有两个参数,第一个参数是元素的数目,第二个是每个元素的大小如果调用成功,函数malloc()和函数calloc()都将返回所分配的内存空间的首地址。函数malloc()和函数calloc()的主要区别...
2018-12-24 14:20:34
399
转载 c++ 抽象 继承 封装 多态
面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口等有的人说面向对象有四大基本特征,抽象,封装,继承,多态,但其实抽象可以抛出在外,本质来说,面向对象的基本特征是继承,封装,多态。先来说C++中的对象和类:类是对象的抽象,而对象是类的具体化,而要使用类的功能,具体就要先定义一个对象例如:class Student { }; Student stu里面的stu就是对象 ...
2018-10-04 16:15:44
679
转载 linux c 关键字volatile的含义和作用
volatile的作用一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-...
2018-10-03 14:40:52
2339
转载 linux c 关于栈空间和堆空间(指针)
一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。2、堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。3、全局区(static):也叫静态数据内存空间...
2018-10-03 11:13:45
1522
转载 非阻塞socket编程
一. 阻塞、非阻塞、异步阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起。该进程被标记为睡眠状态并被调度出去。函数只有在得到结果之后才会返回。当socket工作在阻塞模式的时候, 如果没有数据的情况下调用该函数,则当前线程就会被挂起,直到有数据为止。非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。epoll工作在非阻塞模式时,才会发挥作...
2018-10-02 16:31:53
8784
转载 static关键字的作用
在C语言中static的作用如下第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存...
2018-10-02 15:38:54
148
转载 Linux 进程内存空间分为那几段?作用分别是什么
Linux的内存空间简单可以分为5个部分: Text(代码区):存放可执行的指令操作,其只读不能写 Bss(静态区or全局区):存放未初始化的全局变量和静态变量 Data(数据区):存放初始化的全局变量和静态变量 Stack:存放临时变量,函数参数等 Heap:存放new/malloc等动态申请的变量,用户必须手动进行delete/free操作。 ...
2018-10-02 15:05:46
2235
转载 Linux curses库使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/byxdaz/article/details/1780449 相信您在网路上一定用过如 tin,elm 等工具, 这些软体有项共同的特色, 即他们能利用上下左右等方向键来控制游标的位置. 除此之外, 这些程式的画面也较为美观. 对Programming 有兴趣的朋友一定对此感到好奇, 也许他能在 ...
2018-09-13 18:40:35
4966
转载 Linux c 八种排序
#include<stdio.h>#include<stdlib.h>//冒泡排序void bubleSort(int data[], int n);//快速排序void quickSort(int data[], int low, int high);int findPos(int data[], int low, int high);//插入排序voi...
2018-08-16 09:58:02
840
原创 linux c 进程控制编程
pid_t pid;pid = getpid()获取当前进程IDpid = getppid()获取父进程IDfork和vfork:pid_t vfork(void)子进程和父进程共享地址空间,一定是子进程先进行,而且要等子进程进行完在进行父进程。一般子进程里要加上指定的退出方式 比如exit(1)。pid_t 是vfork的返回值类型,区别: fork是子进程拷贝父进程,...
2018-08-15 19:35:38
161
原创 Linux c 停车场管理系统
功能:1 车辆进出登记 2 出入记录 3 候车场 4 查看 停车场及候车场车辆信息及总数 5 查看停留时间最长的车辆 。。。代码如下#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define SIZE 5#define SUCC...
2018-08-14 17:35:44
1761
原创 Linux c 通讯录(可保存至文件)
功能:1 添加信息 2 查找信息 3 查看信息 4 修改信息 5删除信息 6清空信息 7保存至文件及 从文件中读取。。。main函数文件#include "adress.h"#include <stdio.h>#include <stdlib.h>void print(ElemType e){ printf(" num:%d \n",e);}v...
2018-08-14 17:30:46
608
原创 Linux c 编写停车场管理系统(有注释)
主要功能;1 进车登记2 出车登记(显示当前时间,并显示停留时间和费用)3 查看停车场车辆信息4查看候车场停车信息5 查看有多少车在 停车场外等待6 查看当前时间停留时间最长的车辆信息代码如下()#include<stdio.h>#include<stdlib.h>#include<string.h>#include<...
2018-08-12 23:11:47
1962
原创 linux c 获取当前时间及计算时间差
获取当前时间的方法很多:1 获取当前时间的 时分秒。#include<stdio.h>#include<time.h>int main(){ time_t t1,tim; struct tm *p; time(&t1); p = localtime(&t1); int Hour = p->tm_...
2018-08-11 13:49:13
6958
原创 linux c 双向量表 双向循环链表
双向链表:有两个位置指针,一个指向前一个,一个指向后一个。头文件:#ifndef _LINKLIST_H#define _LINKLIST_H#define FAILURE 10000#define SUCCESS 10001#define TRUE 10002#define FALSE 10003typedef int ElemType...
2018-08-06 19:46:24
337
原创 linux c 单链表通讯录(排序)
头文件:#ifndef _ADRESS_H#define _ADRESS_H#define SUCCESS 10000#define FAILURE 10001#define TURE 10003#define FALSE 10004struct adress{ char name[20]; int num; struct adress *next;};t...
2018-08-05 21:17:45
526
原创 linux c 单链表
头文件:#ifndef _LINKLIST_H //有头结点#define _LINKLIST_H#define SUCCESS 10000#define FAILURE 10001#define TURE 10003#define FALSE 10002typedef int ElemType;struct node //定义{ int data; ...
2018-08-04 20:25:32
184
原创 插入排序法
函数文件int SequenceInsert(ssl *l, ElemType e )//输入并插入排序{ int i, tmp; if(l == NULL || l->length >= SIZE) { return FAILURE; } for(tmp = 0; tmp < l->length; tmp++) { if(e <= l...
2018-08-03 19:44:39
149
原创 顺序表入门
三个文件 :一个头文件,一个函数文件,一个测试文件。 需要好好的消化理解。头文件:#ifndef _SEQUENCELIST_H#define _SEQUENCELIST_H #define SIZE 10#define SUCCESS 10000#define FAILURE 10001#define TRUE 10002#defi...
2018-08-02 20:44:33
131
原创 linux c 关于free的问题
关于free空指针问题。。。问题描述关于free空指针问题。。。char *a="fsdfsds";while(a != NULL) a++;free(a); 这样会段错误,那么如果 char *a="fsdfsds"; char *b; b = a;while(a != NULL) a++;free(a); 这样a被free了。但是b不也是泄露了么?解决方案f...
2018-08-01 22:16:49
1701
原创 linux c 关于大小端字节序
大小端字节转化#include <stdio.h> union test //所有成员共享同一段内存(只为最长成员分配空间){ int a; char b;}; int main(){ printf("%d\n", sizeof(union test));//union的长度为union内部最大数据类型大小的整数倍,且大于等于最大的...
2018-07-31 20:19:46
941
原创 linux c 最简单的通讯录(最笨的方法)
功能:添加信息,显示信息,查找信息,修改信息,删除信息,彩色打印,按名字排序。信息只有姓名和号码,原理都一样。#include<stdio.h>#include<stdlib.h>#include<string.h>int n = 0;void menu()// 主界面{ printf("****************welcom...
2018-07-30 19:59:58
290
原创 linux c 关于结构体 链表 内存管理 联合体
结构体:结构体内存分配:结构体总大小一定是最长成员内存的整数倍(double除外)。 每个成员的偏移量,一定是该成员长度的整数倍。//例struct name{ int a; char b //成员列表 };联合体:所有成员共用同一段内存,只为最长的成员分配内存空间计算机存储的大小端模式可以用其分辨出来。为a赋值,通过对b数组成员的...
2018-07-29 20:50:08
241
原创 linux c 输入一个字符串,计算字符串中子串出现的次字数
输入一个字符串,计算字符串中子串出现的次字数#include<stdio.h>#include<stdlib.h>#include<string.h>int number(char *p,char *q,int n){ int length1 = strlen(p); int length2 = strlen(q); int...
2018-07-28 20:48:34
1902
原创 linux c 指针
判断指针定义或是否正确:1 看语法 =右边是否为地址2 看两边字节大小是否相等函数指针: 是一种指针, 指针指向 函数所在的地址int (*p)() int表示 函数的返回值是int类型(整形),()形参类型。要理解 下列代码的意思函数指针#include <stdio.h>void print(){ printf("helloworld\n"...
2018-07-27 19:26:59
383
原创 C语言:对指针数组中N个指针元素进行大小排序
#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ int n; printf("please input num:\n")// 输入字符串个数 scanf("%d",&n); char *str[n]; char *ptr =...
2018-07-26 11:09:14
4766
原创 指针
指针是什么?起什么作用? 指针是变量的一种,里面是一个地址,通过这个地址找到要找的数据。 实质:单元的地址就是指针内容;指针的运算--赋值运算: 指针变量初始化赋值; 把一个变量的地址赋予指向相同数据类型的指针变量;例如:int a, *pa ; pa = &a ; //把a的地址给pa,都是整型 把一个指针变量的值赋予相同类型的另一个指针变量...
2018-07-25 19:36:21
1769
原创 编程
在字符串的指定位置添加另一个字符串:/*****************************************************copyright (C), 2014-2015, Jinling Institute of TecnologyFile name:2-5.cAuthor: Zhang.Y.F Version:0.1 Date: 2018-07-23...
2018-07-24 19:42:11
91
原创 数组和函数
数组和函数:定义数组时对数组赋予初值:一维数组:int array[5]; //未初始化的局部变量是垃圾值int array[5] = {1, 2, 3, 4, 5};int array[5] = {1, 2}; //对部分元素初始化,其他未初始化元素为0int array[] = {1, 2, 3, 4 ,5};二维数组: int a[4][3]; ...
2018-07-23 20:27:34
98
原创 小结
gdb:gcc -g app.c -o app 生成可调式的文件。gdb app 启动后进入GDB 交互界面,输入命令开始调试。list(l) 列出源码break(b) 设置断点run(r) 从头开始运行程序continue(c) 从停止处继续运行程序next(n) 向前执行一句(不进入被调用的函数中)step(s) 向前执行一句(可进入调用的函数中)retu...
2018-07-20 20:02:32
103
原创 小结
vim:命令模式,插入模式, 底行模式命令模式下的快捷键:dd: 删除一行s;删除一个p:粘贴yy:复制一行u: 撤销在命令模式下按: 进入低行模式wq:保存退出(或者在命令模式下 shift+zz)set nonu:删除行号 setnu:添加行号加数字调到相应的行数vim hello.c +10 创建 或打开hello并跳转到第十行 在命令模式下 ...
2018-07-19 20:23:27
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人