自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 指针相减

如果两个指针指向同一个数组,它们就可以相减,其结果为两个指针之间的元素数目。#include <iostream>using namespace std;int main(){ int a[3] = {0, 1, 2}; int *p, *q; p = a; cout << p << endl; cout ...

2019-08-22 20:25:21 164

转载 电源地、信号地、大地

电源地主要是针对电源回路电流所走的路径而言的,一般来说电源地流过的电流较大,而信号地主要是针对两块芯片或者模块之间的通信信号的回流所流过的路径,一般来说信号地流过的电流很小,其实两者都是GND,之所以分开来说,是想让大家明白在布PCB 板时要清楚地了解电源及信号回流各自所流过的路径,然后在布板时考虑如何避免电源及信号共用回流路径,如果共用的话,有可能会导致电源地上大的电流会在信号地上产生一个电压差...

2019-08-19 09:57:37 2116

原创 selectIO多路转接使用实例

客户端程序为上一篇博客里的tcp_client.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/select.h>#incl...

2019-08-02 00:10:56 493

原创 并发通信

采用TCP协议的CS架构: 服务器使用了多进程,创建了三个进程:父进程用来检测客户端连接情况,子进程用来接收客户端消息,孙进程用来向连接上来的客户端发送“hello”。 为优化代码结构,服务器中的接收消息和发送消息都是使用了execl函数封装。 客户端使用了多线程,主线程用来向服务器发送消息,次线程用来接收服务器的问候。遇到的问题:客户端强制退出时,...

2019-07-30 20:42:24 200

原创 函数对象和谓词

函数对象:重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过“对象名+(参数列表)”的方式使用一个类对象,如果没有上下文,完全可以把它看作一个函数对待。这是通过重载类的operator()来实现的。“在标准库中,函数对象被广泛地使用以获得弹性”,标准库中的很多算法都可以使用函数对象或者函数来...

2019-07-26 16:24:39 243

原创 exec函数族简单用法

exec函数族中真正意义上的系统调用只有execve(), exec函数族的作用是根据指定的文件名,找到可执行文件,并用它来取代调用进程的内容。在调用进程内部执行一个可执行文件。#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main(){ ...

2019-07-24 19:42:43 291

原创 大数加减法

#include <stdio.h>#include <string.h>void LargeNumAdd(char *str1, char *str2){ int num1[100] = {0}; int num2[100] = {0}; int out[100] = {0}; int len = 0, len1 = 0, len...

2019-07-23 16:10:02 271

原创 字符串语句逆序(普通方法和主函数参数列表法)

题目: 通过编程实现语句逆序,如:I am from shanghai,逆序为shanghai from I。方法一:常用方法1)先将单词逆序,得到“I ma morf iahgnahs”2)再将整个句子逆序得到“shanghai from I”。#include <stdio.h>void RevWord(char *p, char *q){ char...

2019-07-23 13:41:02 110

原创 约瑟夫环——数组实现

#include <stdio.h>int main(){ int Size = 0; printf("please input num: "); scanf("%d", &Size); int yoseph[Size]; int flag = Size; //用来判断是否只剩下最后一人 int i = 0, k = 0...

2019-07-23 12:38:40 255

原创 约瑟夫环——链表实现

#include <stdio.h>#include <stdlib.h>typedef struct node{ int num; struct node * next;}Node, *Link;int is_malloc_ok(Link new_node){ if (new_node) return 0; ...

2019-07-23 12:37:52 194

原创 C++类模板带表头单链表的实现

#include <iostream>using namespace std;/****** 创建结点结构 ********/template <class T>class Node{public: Node *next; T data;};/****** 创建链表类模板 ********/template <class T&...

2019-07-21 18:32:22 323

转载 Linux下创建进程的三种方法及特点

在Linux中主要提供了fork、vfork、clone三个进程创建方法。在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。fork fork创建一个进程时,子进程只是完全复制父进程...

2019-07-19 14:58:26 328

转载 宏函数与自定义函数区别

1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数占用的是执行...

2019-07-19 14:31:33 199

转载 交换机和路由器的实现原理

1.二层交换技术  二层交换机是数据链路层的设备,它能够读取数据包中的MAC地址信息并根据MAC地址来进行交换。  交换机内部有一个地址表,这个地址表标明了MAC地址和交换机端口的对应关系。当交换机从某个端口收到一个数据包,它首先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的,它再去读取包头中的目的MAC地址,并在地址表中查找相应的端口,如果表中有与这目的MAC...

2019-07-15 19:14:18 2339

转载 进程与线程区别

1.什么是进程?什么是线程? 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结...

2019-07-13 19:52:59 92

转载 系统调用和库函数

一、系统调用系统调用,我们可以理解是操作系统为用户提供的一系列操作的接口(API),这些接口提供了对系统硬件设备功能的操作。这么说可能会比较抽象,举个例子,我们最熟悉的 hello world 程序会在屏幕上打印出信息。程序中调用了 printf() 函数,而库函数 printf 本质上是调用了系统调用 write() 函数,实现了终端信息的打印功能。___________________...

2019-07-13 11:11:20 801

转载 数据库与文件系统存储数据的区别

一、文件系统与数据库系统的概念及其发展1.文件系统  所谓的文件系统简单地说负责存取和管理文件信息的软件结构。例如电脑的硬盘C、D、E、F盘和可以动的存储设备等。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。  文件系统由三...

2019-07-13 10:29:13 6581

原创 (带表头)双向链表的创建、插入、清空、删除

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;struct double_node{ int num; struct double_node * next; struct double_node * prior;};typedef struct double_node Dnode;typedef stru...

2019-02-17 15:19:21 380

原创 单链表的创建、插入、删除和释放

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;/***************************************************** Function: struct node Description: 存放结构体的值域和址域 Calls: 无 Calls by: 无 Input: 无 Output: 无...

2019-02-15 12:16:13 357

原创 函数指针简例

 函数指针:定义:函数指针是函数的物理入口地址。即是在编译时,分配的物理入口地址。引用:不带括号和参数的函数名代表函数的入口地址。形式:指向函数的指针变量定义形式--&gt;类型   (*指针变量名) (  );          通过指向函数的指针调用函数的形式--&gt;(*指针变量名) (实参表列)。#include &lt;stdio.h&gt;//因为要给函数指...

2019-02-13 18:22:13 93

原创 随机数的产生--5*5矩阵

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define N 5#define M 5int main(){ int a[N][M]; int i, j; srand((unsigned)time(NULL)); for (i = 0; i &lt; N; i++) { ...

2019-02-13 16:27:08 5894

原创 可变参数列表

#include &lt;stdio.h&gt;#include &lt;stdarg.h&gt;//...代表可变参数,省略号前的int n代表要传递的可变参数的个数float average(int n, ...){ //va_list声明一个vz_list变量args,用于访问参数列表的未确定部分 va_list args; int sum = 0; ...

2019-02-13 15:59:32 161

原创 主函数参数--命令行输入数据排序

题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来   提示:需要排数的数字通过参数传递进来,   例如:输入:./a.out  -1  2.1  -3  5  7 输出: -3 -1 2.1 5 7#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;stdlib.h&gt;int main(in...

2019-02-13 15:00:42 271

转载 主函数参数

1、指针数组里的每个存储区是一个指针类型的存储区 2、字符指针数组里包含多个字符类型指针,其中每个指针可以表示一个字符串 3、字符指针数组可以用来表示多个相关字符串 4、主函数的第二个参数是一个字符指针数组,其中每个指针代表一个字符串,所有这些字符串的内容都来自于用户的命令 5、主函数的第一个参数是一个整数,它表示第二个参数里的指针个数   /* ...

2019-02-13 11:54:37 2537

原创 由sum = 0引起的不适

 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数?#include &lt;stdio.h&gt;int main(){ int i,j,t,sum; sum=0; for(i=1; i&lt;1000; i++) { for(j=1; j&lt;i; j++) ...

2019-01-26 14:20:55 312

原创 分号;分号;分号慎用!!!!!

1月22 号写了一个程序,检查许多遍逻辑没有问题,但是输出结果一直不对,今天又拿出来看看,还是觉得没问题,于是我就请教同学,在各个地方加printf输出,发现一开始的数组输入就没有输进去,但是都没在意到for语句后面多的分号,重新建了一个文件,重写程序,完全没问题,又回去找,终于看到了分号!!!!!!一个分号耽搁了我那么久;谨以此博客正告自己,分号慎用!!!!!...

2019-01-26 14:06:49 968

原创 Linux指令提高

1、权限修改ls -l 显示详细信息ls -s 查看隐藏文件rwx(“r"可读4,“w"可写"2”,“x"可执行"1”)rwx(u用户)rwx(g群组用户)rwx(o其他用户)A(a)可以同时改变三组用户权限chmod 777 file.c 赋予file.c所有权限chmod u/g/o +/-/= r/w/x file.c单独控制某用户权限2、打包压缩压缩:tar -cvf f...

2018-12-03 10:00:58 78

原创 C语言第二课

1、声明与定义变量定义:创建一个变量,为其分配内存空间,并为他起名字,一个变量只能定义一次;变量声明:告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是并未为其分配内存,声明可以多次,但是每次声明格式必须一致;函数声明:一般位于头文件,告知编译器这里有一个叫XXX的函数,但并不实现;函数定义:用于实现这个函数,真正在内存(堆或栈)中为此函数,分配空间,定义一般在源文件里,以函数体的...

2018-12-02 00:13:15 125

原创 C语言第一课

1、C源程序----&gt;编译----&gt;目标文件(.obj)----&gt;连接(C语言函数库)----&gt;可执行程序2、变量的本质是内存空间的映射。3、数据类型{数据占内存字节数、数据取值范围、其上可进行的操作}4、#include &lt;stdio.h&gt;,以#开始的语句是预处理器指令#include后可以加".c"和".h"文件;"&lt; &gt;&quot

2018-11-29 17:33:37 125

原创 Linux入门指令

1、cd (change director)更改目录2、cd /home "/"表示根目录,绝对路径只可以从根目录出发3、. 表示当前目录4、…当前目录的上一目录即父目录5、rm 删除文件6、rm -f 强制删除文件7、rmdir 删除目录8、rm -fr 删除目录及包含的所有文件(递归删除)9、mkdir -p ./a/b/c 可逐层10、pwd 显示当前目录11、在vim里...

2018-11-29 17:19:32 67

空空如也

空空如也

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

TA关注的人

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