C语言
文章平均质量分 55
黑旋风大李逵
本人擅长C语言、嵌入式开发和FPGA开发。
展开
-
内存泄漏工具VLD安装及使用
VLD原创 2022-06-19 13:23:28 · 1099 阅读 · 1 评论 -
vfork执行时出现Segmentation fault
1.首先明白vfork是干什么用的?Linux命令行下输入man vfork回车看红色框里的说明,翻译过来是vfork - 创建子进程并且阻塞父进程,block n.块 v.阻塞。在手册的最底部出现下面红框的BUGS,说明vfork是由BUG的。翻译为信号处理的细节是有模糊的,在系统之间有差异(不同)。BSD手册页指出:“为了避免死锁情况,vfork()从不发送SIGTTOU(后台进程企图从控制终端写信号)或SIGTTIN(后台进程企图从控制终端读信号)信号;相反,允许输出或ioctl,并且输入会原创 2022-05-27 20:40:38 · 329 阅读 · 0 评论 -
C语言之单链表逆序
1.什么是链表逆序?(本次所使用的链表是包含头结点的链表)举个例子,有这样的一个链表:逆序后的链表:注意:逆序前后的头指针和头结点是一样的。#include <stdio.h>#include <string.h>#include <stdlib.h>//定义链表的数据结构struct plist{ int data; struct plist* next;};//定义创建链表结点函数struct plist* createno原创 2022-03-26 16:28:01 · 4891 阅读 · 0 评论 -
选择排序法思想及编程实战
1.如下图所示,我要进行10个数按照升序排序2.核心思想第一轮比较完以后保证6的位置是最小的(按照升序),第二轮比较完以后保证2的位置是次最小,以此类推。3.关注细节这里我要进行排序的一共是10个数,其中共进行了9轮就可以完成排序。每次j都是比i大1个数。从图看是两个for循环。//下面是c代码#include <stdio.h>int main(){ int arr[10]={6,2,9,3,7,4,1,8,5,0};//数组初始化 int temp;//原创 2020-08-15 12:26:05 · 219 阅读 · 0 评论 -
顺序查找思想及编程实战
1.所谓顺序查找思想就是按照顺序从前向后查找//下面是c代码很简单#include <stdio.h>int main(void){ int array[10]={1,2,3,4,5,6,7,8,9,10}; int finddata=4;//要查找的数据 int idx=-1;//数组的下标不可能为负 for(int i=0;i<10;i++) { if(finddata==array[i]) {原创 2020-08-15 11:48:04 · 172 阅读 · 0 评论 -
折半查找思想及实战编程
1.折半查找要求是数组是有序为前提(如果不是有序的不能使用)2.提及查找存在两种情况,要么数据存不存在要么存在下标是多少下面讲解折半查找的思想首先定义一个有序数组int array[10]={1,2,3,4,5,6,7,8,9,10};1-10一共有10个数据,将这10个数进行编号,从0开始编号,即0-9;令left=0,right=9,mid=(left+right)/2,idx=-1;idx是什么?idx就是当进行查找以后基本工作做好了以后,现在假设我要查找9这个数,下面讲如何折半查找原创 2020-08-15 11:20:35 · 467 阅读 · 0 评论 -
图书管理系统(链表版)
//下面是完整的c代码(直接复制粘贴到main.c中就能运行)#include<stdio.h>#include<stdlib.h>typedef struct book{ int num; //图书编号 float price; //图书价格 struct book *next; //指向下一个节点的指针}Book;Book *head=0; //初始化头指针为空int n=0; //总节点数目//动态添加节点void Create原创 2020-08-09 19:38:31 · 1117 阅读 · 1 评论 -
c语言动态链表之尾节点添加
在链表的尾部动态添加节点,添加信息包括图书编号和价格。//下面是动态添加节点的完整c代码(直接复制粘贴到main.c中就可以运行)#include<stdio.h>#include<stdlib.h>typedef struct book{ int num; //图书编号 float price; //图书价格 struct book *next; //指向下一个节点的指针}Book;Book *head=NULL; //初始化头指针为空int原创 2020-08-09 19:24:50 · 1849 阅读 · 1 评论 -
c语言单向静态循环链表创建实例
单向静态循环链表创建和静态链表就差循环这里。//下面是完整c代码(直接复制粘贴到main.c中就可以执行)#include <stdio.h>struct StuNode{ char *name; char *StudentNo; float Score; struct StuNode *next;}StuArray[5]={ {"zhangsan","20191100351",95.5},原创 2020-08-09 19:16:10 · 320 阅读 · 0 评论 -
c语言之静态链表创建实例
下面也是静态链表的创建,所用的方法是结构体数变量创建静态链表。//以下是完整的c代码(直接复制到main.c中运行)#include<stdio.h>int main(){ /*定义静态链表时就是这么定义*/ struct book { int num; float price; struct book *next; //每个成员都存放下个节点的地址,所以定义在结构体里面 }; struct book on原创 2020-08-09 19:07:40 · 656 阅读 · 0 评论 -
C语言函数在内存中的调用机制
1.首先说单文件编程(就是所有的代码都在主函数main.c中编写)函数是如何调用的,再引入多文件编程函数如何调用的//main.c中的代码如下#include <stdio.h>int add(flaot x,float y){ return (x+y);}int main(void){ flaot a,b; flaot c; a=2.2; b=3.1; printf("我要调用加法函数\n"); c=add(a,b); printf("%f\n",c); reu原创 2020-05-31 11:55:59 · 2018 阅读 · 0 评论 -
C语言运行机制(过程)简述
很多人在学习C语言的时候直接用的IDE(Integrated Development Environment全名叫集成开发环境),因此并不知道C语言的运行过程,这里我用VS2010IDE简单的写一下C语言的运行过程,希望能帮助大家理解。1.编辑:写一个hello world!程序,然后以hello.c为文件名,这个过程就是编辑源代码。2.编译:编译的目的就是将hello.c文件翻译成目标文件hello.obj文件。3.链接:将目标文件hello.obj+库文件(比如stdio.h等库文件)生成可执行原创 2020-05-26 18:32:05 · 26434 阅读 · 0 评论 -
C语言占位符及printf格式说明
1.首先说一下什么是占位符,大家看到的%d、%f等都是占位符,简单来说就是每种数据类型对应相关的占位符。2.占位符有哪写?%d //以十进制整型格式%i //以十进制整型格式%ld //以十进制长整型格式%u //以无符号格式%c //以字符格式%f //以浮点格式%e //以指数格式%s //以字符串格式%o //以无符号八进制格式%x //以十六进制格式3.格式输出控制%+md /*按照指定宽度m输出十进制整型数据,如果数据实际宽度大于m则按照实际输出原创 2020-05-26 12:05:02 · 3105 阅读 · 0 评论 -
C语言变量、数组、结构体、共用体说明
1.C语言变量的命名规则1)由字母、数字、下划线组成2)变量名称不能和关键字相同3)第一个字符必须是字母或下划线2.C语言基本变量类型char //字符类型unsigned char //无符号字符类型int //整型unsigned int //无符号整型unsigned short int //无符号短整型short int //短整型long int //长整型unsigned long int //无原创 2020-05-26 08:41:46 · 524 阅读 · 0 评论 -
C语言getchar()函数解析
1.首先getchar()函数包含在#include<stdio.h>中,请看下面的例子:下面是C程序的基本结构请自己动手编写试试,不要眼高手低。/*std是standard单词的缩写,标准的意思,i是input单词的缩写输入的意思,o是output单词的缩写, 输出的意思连起来读就是标准输入输出。*/#include<stdio.h>int main(void) //主函数,一个C程序有且只有一个主函数{ char a; a=getchar(); //切记原创 2020-05-08 21:05:05 · 4161 阅读 · 0 评论