linux c
文章平均质量分 70
berniebd
这个作者很懒,什么都没留下…
展开
-
C 字符串小研究 strtok VS strtok_r
1. strtok介绍众所周知,strtok可以根据用户所提供的分割符(同时分隔符也可以为复数比如“,。”)将一段字符串分割直到遇到"/0".比如,分隔符=“,” 字符串=“Fred,John,Ann”通过strtok 就可以把3个字符串 “Fred” “John” “Ann”提取出来。上面的C代码为int in=0;char buffer[]="Fred,John,Ann"ch转载 2008-08-28 10:16:00 · 2722 阅读 · 0 评论 -
动态内存分配
准备:动态内存分配一、为什么用动态内存分配但我们未学习链表的时候,如果要存储数量比较多的同类型或同结构的数据的时候,总是使用一个数组。比如说我们要存储一个班级学生的某科分数,总是定义一个float型(存在0.5分)数组:float score[30];但是,在使用数组的时候,总有一个问题困扰着我们:数组应该有多大?在很多的情况下,你并不能确定要使用多大的数组,比如上例,你可能并不知道该班级的学转载 2008-09-03 09:15:00 · 941 阅读 · 0 评论 -
双向循环链表的删除
删除某个结点,其实就是插入某个结点的逆操作。还是对于双向循环链表,要在连续的三个结点s,p,q中删除p结点,只需把s的右链域指针指向q,q的左链域指针指向s,并收回p结点就完成了。下面就是一个应用双向循环链表删除算法的例子:#include#include#include#define N 10typedef struct node{char name[20];struct node *llink转载 2008-09-03 09:29:00 · 1214 阅读 · 0 评论 -
双向循环链表的插入
对于双向循环链表,我们现在可以随意地在某已知结点p前或者p后插入一个新的结点。假若s,p,q是连续三个结点的指针,若我们要在p前插入一个新结点r,则只需把s的右链域指针指向r,r的左链域指针指向s,r的右链域指针指向p,p的左链域指针指向r即可。在p,q之间插入原理也一样。下面就是一个应用双向循环链表插入算法的例子:#include #include #include #define N 10ty原创 2008-09-03 09:28:00 · 2393 阅读 · 0 评论 -
双向链表和循环链表
一、循环链表循环链表是与单链表一样,是一种链式的存储结构,所不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点,从而构成一个环形的链。循环链表的运算与单链表的运算基本一致。所不同的有以下几点:1、在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是象单链表那样置为NULL。此种情况还使用于在最后一个结点后插入一个新的结点。 2、在判断是否到表尾时,是判断转载 2008-09-03 09:26:00 · 1377 阅读 · 0 评论 -
单链表的插入
#include #include #include #define N 10typedef struct node{ char name[20]; struct node *link;}stud;stud * creat(int n) /*建立单链表的函数*/{ stud *p,*h,*s; int i; if((h=(stud *)malloc(sizeof(st转载 2008-09-03 09:23:00 · 732 阅读 · 0 评论 -
单链表的建立
一、单链表的建立有了动态内存分配的基础,要实现链表就不难了。所谓链表,就是用一组任意的存储单元存储线性表元素的一种数据结构。链表又分为单链表、双向链表和循环链表等。我们先讲讲单链表。所谓单链表,是指数据接点是单向排列的。一个单链表结点,其结构类型分为两部分:1、数据域:用来存储本身数据2、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。例:typedef struct node转载 2008-09-03 09:09:00 · 8705 阅读 · 1 评论 -
如何使用gcc编译器?
摘要:要想读懂本文,你需要对C语言有基本的了解,本文将介绍如何使用gcc编译器。首先,我们介绍如何在命令行方式下使用编译器编译简单的C源代码。然后,我们简要介绍一下编译器究竟作了那些工作,以及如何控制编译过程。我们也简要介绍了调试器的使用方法。 GCC rules 你能想象使用封闭源代码的私有编译器编转载 2008-08-28 17:39:00 · 822 阅读 · 0 评论 -
Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?转载 2008-08-28 17:07:00 · 756 阅读 · 0 评论 -
如何在Linux使用Eclipse + CDT开发C/C++程序?
A. 为什么要在Linux使用Eclipse开发C/C++程序? Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发。传统在Linux下开发程序,是在文字模式下,利用vi等文字编辑器撰写C/C++程序存盘后,在Command line下使用gcc编译,若要debug,则使用gdb。这种开发方式生产力并不高,若只是开发学习用转载 2008-09-16 13:57:00 · 1025 阅读 · 1 评论
分享