C语言
sacoder
这个作者很懒,什么都没留下…
展开
-
C语言--链式结构表1
#include #include //typedef int INT;//定义一个结构体的node结点用来保存,关联数据 typedef struct node_{ struct node_ *next; INT data;}node;/**尾插法 保存最后一个数据 */static node *last;/**创建头结点 */node *creat原创 2016-11-03 21:04:10 · 332 阅读 · 0 评论 -
fread和fwrite函数
#include int main(int argc, char *argv[]){ FILE *f = fopen("test.txt","rb") ; FILE *f2 = fopen("test_2.txt","wb") ; if(f==NULL){ perror(NULL); return 0; } char buf[10]={0}; //如果为int 会有不能完全复原创 2016-11-13 17:50:37 · 223 阅读 · 0 评论 -
C语言--动态库和静态库
静态库编译的时候把库中的代码加到目标程序中。find / -name *.aar -t 静态库的名字 ----》查看静态库的组成部分步骤:1、确定函数接口 函数名、参数、功能、返回值2、由于库都是有.o文件组成的,需要生成.o文件gcc -c add.c -o add.ogcc -c sub.c -o sub.o3、制作静态库ar crs原创 2016-11-14 18:20:23 · 481 阅读 · 0 评论 -
C语言--Linux下的文件IO和标准IO
文件IO与标准IO:1.文件OI又称为低磁盘IO 遵循POSIX标准,标准IO又称为高磁盘IO,遵循ANSI C相关标准。Linux中使用的的是GLIBC,它是标准C库的超集,不仅包含ANSI C中定义的函数,也包含POSIX标准中定义的函数。故而Linux中文件io和标准IO都可以使用。2.标准IO是在文件IO的基础上封装了缓冲机制标准IO的主要函数有:F原创 2016-11-14 19:55:07 · 2162 阅读 · 0 评论 -
LINUX进程相关的几个函数
LINUX进程相关的几个函数1.pid_t fork( void) :返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-12.exit(0): 就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXIT_SUCCESS);可原创 2016-11-14 20:31:29 · 514 阅读 · 0 评论 -
枚举,typedef定义和使用
//枚举,typedef定义和使用 #include //自定义类型 typedef char char_1;//#define char_1 char 预编译 替换 // define用于定义常量 typedef用于定义类型 //定义枚举 enum A{ RED=2,YELLOW=1,BLUE,C,D //没有赋值的数会从左边临近的数+1递增赋值 };//t原创 2016-11-02 21:01:59 · 1303 阅读 · 0 评论 -
C语言--线性表的顺序存储的实现
//线性表的顺序存储的实现#include #include #define SIZE 10struct MArrayList{ int last; int data[SIZE];};struct MArrayList *getMArrayList(){ struct MArrayList *m1 = (struct MArrayList*)malloc(sizeo原创 2016-11-02 21:03:57 · 368 阅读 · 0 评论 -
数据结构和算法--栈的数组实现
//栈的顺序存储(与顺序表类似)#include #include #define N 32//定义数据类型typedef int datatype_t;//定义结构体typedef struct { datatype_t data[N]; int top;}seqstack_t;//创建一个空的栈seqstack_t *seqstack_create(){原创 2016-11-08 23:23:51 · 267 阅读 · 0 评论 -
数据结构和算法--栈的链式实现
//链式栈的实现(类似与单链表)#include #include //定义数据类型typedef int datatype_t;//定义结构体typedef struct node{ datatype_t data; struct node *next;}linkstack_t;//创建一个空的栈linkstack_t *linkstack_create(){ l原创 2016-11-08 23:26:15 · 289 阅读 · 0 评论 -
数据结构和算法--队列的数组实现
//循环队列(队列的顺序存储)的实现//注意:如果想实现循环队列,那么队列里面最多能够存放N-1个数据#include #include #define N 32//定义数据类型typedef int datatype_t;//定义结构体typedef struct{ datatype_t data[N]; int front; //第一项的角标 int rear原创 2016-11-08 23:27:58 · 264 阅读 · 0 评论 -
fgets_fputs函数
#include /** char* fgets(char*, int, FILE*); 第一个参数 存放读取到的字符 第一个参数 一次最多读取多少个字符 当碰到换行符时会返回 第三个参数 读取的文件指针 成功,则返回第一个参数buf; 在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf原创 2016-11-13 17:45:51 · 510 阅读 · 0 评论 -
fgetc_fputc函数
#include void fgetc_fputc(){ char c = 0; while(1){ //按返回键会返回值 返回键对应的值转换为数字为10 不再阻塞 //stdin内部应该维护了一个队列 存储输入的字符 fgetc每次从队列里面获取一个字符 如果没有获取到 则阻塞等待输入 // getchar(); 从队列获取多余的空格 c =原创 2016-11-13 17:43:20 · 539 阅读 · 0 评论 -
C语言--结构体内存计算规则
#include #include /**结构体内存计算规则:内存对齐对齐内存的大小:小于等于4 如果结构体的成员中都是小于4的类型,以其中最大的类型为对齐内存大小否则对齐内存为4 :对齐内存就是结构体的最小内存单位,一个单位可以存放一个或者多个变量 结构体占内存大小为对齐内存的整数倍 结构体初始化是从上到下:结构体初始化时,如果剩余的单位内存大于等于要存放的变量占内存大小则不开辟新原创 2016-10-31 15:18:04 · 557 阅读 · 0 评论 -
C语言链式结构表2
//单链表(线性表的链式存储)的实现#include #include //定义数据类型typedef int datatype_t;//定义结构体typedef struct node{ datatype_t data; struct node *next;}linklist_t;//创建一个空的单链表linklist_t *linklist_create(){原创 2016-11-03 21:07:19 · 762 阅读 · 0 评论 -
C语言--指针和一维数组
#include //指针运算 int main(int argc, const char *argv[]){ short a = 10; short *p = &a; printf("&a = %p\n", &a);//输出变量的的内存地址 &a = 0028FF46 printf("p = %p\n", p); //输出指针变量p p原创 2016-10-29 14:47:13 · 884 阅读 · 0 评论 -
C语言-- 二维数组变量指针取值的写法
#include //二维数组 指针取值的三种写法 int main(int argc, const char *argv[]){ //声明一个二维数组并赋值 int a[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}};//1.a+1二维数组指针变量a向前移动一个单位,移动到二维数组的第二个元素{4,5,6,7}原创 2016-10-29 14:54:01 · 4148 阅读 · 0 评论 -
C语言--指针数组和数组指针
#include //指针数组 int main(int argc, const char *argv[]){ int a = 10; int b = 20; int c[5] = {0,1,2,3,4}; //指针数组,本质是数组,元素是指针类型 //申明一个大小为3的指针数组 int *p[3]; p[0] = &a;原创 2016-10-29 15:09:34 · 271 阅读 · 0 评论 -
C语言--多级指针和指针类型强制转换
#include //多级指针 int main(int argc, const char *argv[]){ int a = 12; int *p = &a; //p=&a=*w int **w = &p; printf("a = %d\n",a); printf("*p = %d\n",*p); printf("**w = %d\n",**w); return 0;原创 2016-10-29 15:17:30 · 595 阅读 · 0 评论 -
C语言--函数指针与函数指针数组
#include //函数指针 int fun(void){ printf("Hello World\n"); return 0;}int main(int argc, const char *argv[]){ printf("main = %p\n",main); int (*p)(void) = fun; //p 函数指针:本质是指针 p();原创 2016-10-30 19:30:43 · 3857 阅读 · 0 评论 -
C语言--回调函数
#include //回调函数//定义一个sub函数 int sub(int a, int b){ printf("sub = %d\n",a-b); return 0;}//定义一个add函数 int add(int a, int b){ printf("add = %d\n",a+b); return 0;}//定义回调函数 参数为:函数指针 int ca原创 2016-10-30 19:35:00 · 281 阅读 · 0 评论 -
C语言--结构体
#include #include //无名结构体:没有类型名struct { int id; float score; char name[32];}s1 = {1, 91.38, "里斯"}; int main(int argc, const char *argv[]){ printf("id=%d score=%.1f name=原创 2016-10-30 19:44:08 · 197 阅读 · 0 评论 -
结构体数组和结构体指针
#include #include /**结构体数组和结构体指针(或结构体数组指针) */ struct Stu{ int age; char sex; char str[10];//结构体数组的定义与初始化 }stu_arr[2]={{10,20,"haha"},{30,40,"niha0"}};/**打印结构体信息 */int printInfo(struct S原创 2016-10-31 11:47:43 · 1509 阅读 · 0 评论 -
数据结构和算法--队列的链式实现
//队列链式队列的实现#include #include //定义数据类型typedef int datatype_t;//定义结构体typedef struct node{ datatype_t data; struct node *next;}linknode_t;typedef struct{ linknode_t *front; linknode_t *re原创 2016-11-08 23:32:06 · 287 阅读 · 0 评论