c语言
wwzhang0307
这个作者很懒,什么都没留下…
展开
-
c语言-字符串去空格
#include "stdio.h"#include "string.h"main(){ char za[100] ="he "; printf("(%s)\n",za); printf("%d\n",strlen(za)); int i=strlen(za)-1; //字符串长度7 最后一位下表为6;str原创 2016-08-15 14:11:32 · 1406 阅读 · 0 评论 -
数据结构-双向链表
DLinkList.h#ifndef __DLINKLIST_H_#define __DLINKLIST_H_typedef void DLinkList;typedef struct _tag_DLinkListNode{ struct _tag_DLinkListNode* next; struct _tag_DLinkListNode* pre;}DLinkListN转载 2016-12-15 11:13:48 · 310 阅读 · 0 评论 -
数据结构-链式表
LinkList.h#ifndef __MYLINKLIST_H_#define __MYLINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode{ struct _tag_LinkListNode* next;}LinkListNode;/*链式表的创建*/LinkList* LinkList_Creat原创 2016-12-14 10:18:48 · 560 阅读 · 0 评论 -
linux编程-信号讲解
Signal()函数使用简介 signal()是一种系统调用,用于通知运行时系统,当某种特定的“软件中断”发生时调用特定的程序。它的真正的名字应该是“Call_that_routine_when_this_interrupt_Comes_in(当该中断发生时调用那个程序)", 调用signal()函数,并通过参数传递告诉它终端类型以及用于处理中断的程序。原创 2017-02-07 11:10:20 · 457 阅读 · 0 评论 -
c语言-指针统计字符串长度,字符串连接
#include "stdio.h"int main(){ char s[100]="hello"; char b[]="world"; int len=mystrlen(s); printf("len=%d\n",len); mystradd(s,b); printf("s=%s\n",原创 2016-08-15 13:42:42 · 2658 阅读 · 0 评论 -
c语言-文件io
#include "stdio.h"#include "stdlib.h"#include "string.h"int main(){ FILE *p = fopen("D:\\study\\a.txt", "w"); fputs("hello world", p); fputs("hello world", p); fclose(p); return原创 2016-08-23 14:06:34 · 487 阅读 · 0 评论 -
linux系统调用、库函数和内核函数关系与区别
看系统调用,还有库函数,以前一直不明白,总是以为 系统调用跟库函数是一样的,但是今天才知道是不一样的。库函数也就是我们通常所说的应用编程接口API,它其实就是一个函数定义,比如常见read()、write()等函数说明了如何获得一个给定的服务,但是系统调用是通过软中断向内核发出一个明确的请求,再者系统调用是在内核完成的,而用户态的函数是在函数库完成的。系统调用发生在内核空间,因此如果在用户空间的转载 2017-04-01 15:42:26 · 7334 阅读 · 1 评论 -
C-socket编-线程池
#include <stdlib.h>#include <pthread.h>#include <unistd.h>#include <assert.h>#include <stdio.h>#include <string.h>#include <signal.h>#include <errno.h>/*#include "threadpool.h"*/#define DEFAUL转载 2017-04-17 17:53:55 · 1261 阅读 · 0 评论 -
C-UDP-服务器客户端模型
服务器代码#include <string.h>#include <stdio.h>#include <unistd.h>#include <arpa/inet.h>#include <ctype.h>#define SERV_PORT 8000int main(){ struct sockaddr_in serv_addr,clie_addr; socklen_t cli原创 2017-04-24 13:37:09 · 408 阅读 · 0 评论 -
C-UDP-广播模型
服务端#include <string.h>#include <stdio.h>#include <unistd.h>#include <arpa/inet.h>#include <ctype.h>#include <stdlib.h>#define SERVER_PORT 8000#define CLIENT_PORT 9000#define MAXLINE 1500#define原创 2017-04-25 09:21:45 · 439 阅读 · 0 评论 -
数据结构-顺序表
SeqList.h 的内容#ifndef __SEQLIST_H__#define __SEQLIST_H__typedef void SeqList;typedef void SeqListNode;/*顺序表创建*/SeqList* SeqList_Creat(int capacity);/*顺序表删除*/void SeqList_Destroy(SeqList* list);/*原创 2016-12-14 09:09:15 · 275 阅读 · 0 评论 -
数据结构-循环链表
CircleList.h#ifndef __CIRCLELIST_H_#define __CIRCLELIST_H_typedef void CircleList;typedef struct _tag_CircleListNode{ struct _tag_CircleListNode *next;}CircleListNode;/*循环链表的创建*/CircleList*原创 2016-12-14 10:29:17 · 201 阅读 · 0 评论 -
数据结构-栈的应用
"3*(1-2)-1" 人类习惯的中缀表达式后缀表达是这是计算机所习惯的计算方式规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于找顶符号(乘除优先加减)则栈顶元素依次出找并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。以下是代码实现原创 2016-12-15 22:10:20 · 203 阅读 · 0 评论 -
c语言-逆置字符串
#include "stdio.h"#include "string.h"int main() 4 { 5 char s[]="张伟伟"; 6 int len=strlen(s); printf("%d\n",sizeof(s)); printf("%s\n",s); int start=0;原创 2016-08-15 14:06:37 · 4218 阅读 · 1 评论 -
c语言-排序算法
#include "stdio.h"main(){ int l[10]={3,7,5,4,6,1,2,8,9,0}; int i,j,k; int len=sizeof(l)/sizeof(l[1]); printf("len:%d\n",len); for(i=len;i>0;i--) {原创 2016-08-15 11:35:48 · 339 阅读 · 0 评论 -
c语言-求字串在母串中出现的次数
#include "stdio.h"#include "stdlib.h"#include "string.h"#include "time.h"#include <sys/stat.h>int sub_ncount(char *mystr, char *sub, int *ncount){ int tmpcount = 0; char *p = mystr; if原创 2016-09-08 10:19:11 · 1769 阅读 · 0 评论 -
C语言中.h和.c文件解析(很精彩)
C语言中.h和.c文件解析(很精彩) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行转载 2016-09-18 13:36:51 · 453 阅读 · 0 评论 -
c知识(需要经常看)
1、数组初始化:数组元素的个数可以显示或隐式指定int main(){int a[10] = {1,2};//其他没初始化元素,编译器默认帮你初始化为0 int b[] = {1, 2};//编译器隐式指定长度为两个元素 int c[20] = {0}; for (i=0; i转载 2016-09-19 11:38:34 · 326 阅读 · 0 评论 -
c语言-单向链表
定义结构体struct list{ int data; struct list *next;};创建链表struct list *create_list(){ return calloc(sizeof(struct list), 1);}遍历列表void traverse(struct list *ls){ struct list *p = ls;原创 2016-09-02 16:45:07 · 286 阅读 · 0 评论 -
数组指针定义的三种方法
typedef int array[5]在main函数中array *a1;typedef int (*parray)[5]在main函数中parray p1;直接在main函数中int (*parray)[5];原创 2016-10-20 14:40:03 · 415 阅读 · 0 评论 -
c语言-指针 const解析
int *pi //pi是普通的指针变量int const *pi //pi则是指向整型常量的指针,可以修改指针的值,但不可以修改他所指向的值。int * const pi //pi则是指向整型的常量指针,可以修改他所指向的值,但不可以修改指针的值。int const * const pi //无论是指针本身还是他所指向的值都常量,不允许修改。原创 2016-09-07 11:39:38 · 291 阅读 · 0 评论 -
条件编译 #ifndef _HEAD_H...中下划线的理解!
条件编译 #ifndef _HEAD_H...中下划线的理解!一、下划线“__”属于编程风格的内容,对程序没有影响。不用下划线也可以,用几个下划线也由个人习惯。二、其实质是一个宏名。由此我们可以防止发生重复定义或声明。假设你的头文件名为head.h,根据习惯,我们声明一个宏HEAD_H,对应这个头文件,在头文件中开始的地方和结尾的地方加上 对HEAD_H的声明和判断,头文件Head.h如下: #转载 2016-12-09 10:01:46 · 3492 阅读 · 1 评论 -
内存管理
内存四个区域: 1代码区: 可执行代码 2静态区: 所有静态变量和全局变量 3堆区: 4栈区 自动变量,形参原创 2016-08-17 11:05:36 · 265 阅读 · 0 评论