C
xuxinshao
这个作者很懒,什么都没留下…
展开
-
字符串函数strcpy
char *strcpy(char *strDest,const char *strSrc){ assert(NULL!=strDest); assert(NULL!=strSrc); char *tmp=strDest; while((*strDest++=*strSrc)!=/0) ;原创 2005-07-27 20:43:00 · 1178 阅读 · 0 评论 -
有序顺序存储线形表的二分法查找
int binary(int x,int a[],int N){ int low=0,high=N-1,mid; while(lowhigh) { mid=(low+high)/2; if(xa[mid]) high=mid-1;原创 2005-09-12 13:18:00 · 1482 阅读 · 0 评论 -
常用字符的7位ASCII值
常用字符的7位ASCII值Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex Char 32 20 (空格) 56 38 8 80 50 P 104 68 h 33 21 ! 57 39 9 81 51 Q 105 69 i 34 22 " 58 3A : 82 52 R 106 6A j 35 23原创 2005-09-12 14:31:00 · 1517 阅读 · 0 评论 -
可变参数
#include stdio.h>#include double add_values(char *str, ...){ va_list marker;/*va:variable-argument*/ double result = 0.0; va_start(marker,str); while(*str)原创 2006-03-01 12:39:00 · 947 阅读 · 0 评论 -
sizeof解读
解析C语言中的sizeof 解析C语言中的sizeof 一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符原创 2006-03-02 14:33:00 · 1132 阅读 · 0 评论 -
C语言字节对齐详解
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地原创 2008-04-02 12:20:00 · 20220 阅读 · 29 评论 -
细说 #pragma pack(n) (转载)
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况:struct test {原创 2008-04-02 12:23:00 · 1721 阅读 · 2 评论 -
“/r/n”回车与换行
在Windows中:/r 回车,回到当前行的行首,而不会换到下一行;/n 换行,换到当前位置的下一行,而不会回到行首;回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以转载 2009-12-01 17:16:00 · 19073 阅读 · 4 评论 -
make clean、 make mrproper、make distclean的区别
内核编译时, 到底用make clean, make mrproper还是make distclean在编译内核时, 被make clean, make mrproer 和 make distclean搞的纠结, 稍微总结一下这三者之间的区别:解压内核源码包后, 到内核源代码目录树的顶层目录, 执行# make helpCleaning targets:clean转载 2012-01-06 16:19:49 · 6875 阅读 · 1 评论 -
在命令行下编译VC程序
设置:(1)打开“运行(R)...”,输入cmd,进入到C:/Program Files/Microsoft Visual Studio/VC98/Bin目录下;(2)然后输入VCVARS32编译:(1)CL main.cpp执行:(1)main原创 2005-04-27 11:35:00 · 1769 阅读 · 1 评论 -
int main(int argc,char **argv)
#include iostream.h>#include /*argc是外部命令参数的个数,argv[]存放的是各参数的内容*/int main(int argc,char *argv[]){ int a,b,c; if(argc==1 ||argc>3) return 0; cout"argc="argcendl;原创 2005-04-22 17:18:00 · 1887 阅读 · 0 评论 -
水手分椰子问题
#include stdio.h>void coconut(){ int x,y,k,m,count; for(x=4;xx+=4) { count=0; m=x; for(k=0;kk++) { y=x*5/4+1;原创 2005-04-19 16:07:00 · 4217 阅读 · 0 评论 -
八皇后问题
#include stdio.h>#include void Queen();void print(); int colflag[8],upflag[15],downflag[15];int n=0;char a[8][8]; void Queen(int row){ int col; for(col=0;colcol++) if(colfla原创 2005-04-19 18:26:00 · 1178 阅读 · 0 评论 -
台阶问题
#include stdio.h>#define N 5 int index;int que[N]; void print(){ for(int i=0;iindex;i++) printf("%d ",que[i]); printf("/n");} void step(int n){ if (n==0) {原创 2005-04-20 15:51:00 · 1091 阅读 · 0 评论 -
n阶魔方
#include stdio.h>#define N 100int a[N][N]; void magic(int n){ int i,j,t,u,v,x,y; //奇数阶(2k+1) if(n%2!=0) { y=(n+1)/2;x=y+1; for(i=1;in*n;i++)原创 2005-04-20 17:27:00 · 1325 阅读 · 0 评论 -
简单排序
#include stdio.h> //选择排序:不稳定void SelectionSort(int a[],int N){ int i,j,k,t; for(i=0;iN-1;i++) { k=i; for(j=i+1;jN;j++) { if原创 2005-04-21 10:28:00 · 996 阅读 · 1 评论 -
复杂排序
#include stdio.h> //希尔排序:不稳定,是直接插入排序的改进void ShellSort(int a[], int n){ int h,i,j,t; for(h = n/2; h > 0; h /= 2)//h为步长,下面算法由直接插入算法以h代替1得来 for(i = h; i n; i++)原创 2005-04-21 14:02:00 · 1235 阅读 · 0 评论 -
马的遍历问题
#include stdio.h>#include int deltai[]={2,1,-1,-2,-2,-1,1,2};int deltaj[]={1,2,2,1,-1,-2,-2,-1};int board[8][8]; /*求(i,j)的出口数,和各出口号于a[],s是顺序选择着法的开始序号*/int exitn(int i,int j,int s,int a[]){ int原创 2005-04-21 16:32:00 · 1554 阅读 · 0 评论 -
生产者-消费者问题
多缓冲的生产者-消费者问题:生产者loop ... 生产一个产品next P(empty) P(mutex) next放入缓冲池 V(mutex) V(full) ...endloop 消费者loop ... P(full) P(mutex) 从缓冲池中取一个产品 V(mutex) V(empty) 享用 ...endloop原创 2005-09-12 14:18:00 · 1038 阅读 · 0 评论 -
约瑟夫问题
#include stdio.h>#define M 8 void josephus(){ int i,j,s,a[M],N; printf("please input N="); scanf("%d",&N); for(i=0;iM;i++) a[i]=1; j=0;原创 2005-04-19 11:25:00 · 984 阅读 · 0 评论 -
翻转字符串
void reverse( char a[], int len ){ char k; for( int i = 0; i { k = a[i]; a[i] = a[ len - i - 1 ]; a[ len - i - 1 ] = k; }}原创 2012-09-17 10:03:12 · 1069 阅读 · 0 评论