开发界
首页 移动开发 在线交易 IT笔记 网络技术 操作系统 企业架构 数据库 考试认证 IT培训 开源软件 数据存储 行业资讯
大家都在看:java   开发   C#   oracle   mysql   android   web开发   学习   sqlserver   linux   asp   php   ajax   javascript   css   html
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1、一种是需要建立存储空间的。例如:inta在声明的时候就已经建立了存储空间。 2、另一种是不需要建立存储空间的。例如:externinta其中变量a是在别的文件中定义的。 前者是“..
开发界 发表于:C语言
·C-00001-字符处理 C语言 [2012-10-23]
#include<stdio.h> #include<stdlib.h> #include<string.h> #defineMAX_COLS20 #defineMAX_INPUT1000 intread_column_numbers(incolumns[],intmax); voidrearrange(char*output,charconst*input,intn_columns,intconstcolumns[]); intmain(void) { intn_columns; intcolumns[MAX_COLS]; charinput[MAX_INPUT]; charoutput[MAX_INPUT]; n_columns=read_column_numbers(col..
开发界 发表于:C语言
题目:有一堆石头质量分别为W1,W2,W3...WN.(W<=100000)现在需要你将石头合并为两堆,使两堆质量的差为最小。 这道题目可以用01背包问题来解决。即求出和最接近sum/2的一个子集令f(i,j)表示前i个元素中和最接近j的子集的和(有点绕),则有:f(i,j)=max(f(i-1,j),f(i-1,j-a[i])+a[i]),其中a数组是用来存储所有石头的质量的。 源码如下: [cpp]viewplaincopyprint? #include<stdio.h> #defineN5 ..
开发界 发表于:C语言
//ZOJ3464RugbyFootball //水题 #include<stdio.h> #include<stdlib.h> #defineN10005 inta[N]; intn,t,l; intcmp(constvoid*a,constvoid*b){ return*(int*)b-*(int*)a; } intmain(){ intT; inti; scanf("%d",&T); while(T--){ scanf("%d%d%d",&n,&t,&l); for(i=1;i<=n;++i) scanf("%d",&a[i]); qsort(a..
开发界 发表于:C语言
//ZOJ3465TheHive //暴力模拟 #include<iostream> #include<stdio.h> #include<stack> usingnamespacestd; #defineN10 intn; chars[N]; stack<char>S[N]; intarr[N]={0,7,8,9,10,11,10,9,8,7}; ..
开发界 发表于:C语言
·gcc嵌入汇编 C语言 [2012-09-26]
具有输入和输出参数的嵌入汇编语句的基本格式为: asm( "汇编语句“ :输出寄存器列表 :输入寄存器列表 :会被修改的寄存器列表 ); asm是嵌入汇编的关键字,“汇编语句”是写汇编指令的地方,“输出寄存器”是指这段嵌入汇编执行完之后,哪些寄存器用于存放输出数据,这些寄存会会分别对应一C语言表达式值或一个内存地址;“输入寄存器”表示在开始执行..
开发界 发表于:C语言
一下内容仅是个人理解,有错误之处,望大家谅解和指正。 a[i][j]使用时间:94s for(k=0;k<10000;k++) for(i=0;i<MAX;i++) for(j=0;j<MAX;j++) a[i][j]=0; a[j][i]使用时间:488s for(k=0;k<10000;k++) for(i=0;i<MAX;i++) for(j=0;j<MAX;j++) a[j][i]=0; 我将两种方法使用gcc生成了汇编代码。使用diff比较只发现了一下四句汇编代码的不同 1c1 <.file"array..
开发界 发表于:C语言
在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下: [cpp]viewplaincopyprint?#include<stdio.h> __attribute((constructor))voidbefore_main() { printf("%s/n",__FUNCTION__); } __attribute((destructor))voidafter_main() { printf("%s/n",__FUNCTION__); } intmain(intargc,char**argv) { printf("%s/n",__FUNCTI..
开发界 发表于:C语言
·C语言要点 C语言 [2012-09-21]
一关键字: 1.static: 第一个作用:修饰变量。变量又分为局部和全局变量,但它们都存在内存的静态区。由于被static修饰的变量总是存在内存的静态区,所以即使这个函数运行结束,这个静态变量的值还是不会被销毁,函数下次使用时仍然能用到这个值。 staticintj; voidfun1(void) { staticinti=0; i++; } voidfun2(void) { j=0; j++; } intmain() { for(..
开发界 发表于:C语言
对于一个只用C写十几二十行程序的菜鸟,也能遇到这样那样诡异郁闷的问题,其实知道点底层也挺好的。先说这个问题: C代码 #include<stdio.h> #include<malloc.h> #definemax(a,b)((a)>(b)?(a):(b)) intcomputeMax(int[],int); intmain(){ intarray[10]={1,-1,2,2,3,-3,4,-4,5,-5}; /*printf("\n");*/ printf("%d\n",computeMax(array,10)); return0; } in..
开发界 发表于:C语言
函数ReadDat()的功能是实现从文件IN88.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CharConvA(),其功能是:以行为单位把字符串的最后一个字符的ASCii值右移4位后加最后第二个字符的ASCii值,得到最后一个新的字符,最后第二个字符的ASCii值右移4位后加最后第三个字符的ASCii值,得到最后第二个新的字符,以此类推,一直处理到第二个字符,第一个字符的ASCii值加最后一个字符的ASCii值,得到第一个新的字符,得到..
开发界 发表于:C语言
matlab那个代码有点长,而且数据多。。。。一个个打不方便。。。不如直接用个脚本派生,或者matlaboop,现在没网上,oop没资料,故直接写个C的脚本派生了,matlab读取execl的代码 [cpp]viewplaincopyprint? //createbyEdward.xu //must //16.9.2012 #include"stdio.h" #include"stdlib.h" #defineQUALITY_SIZE10 intmain() { FILE*fp; intclass=0; inttest=0;..
开发界 发表于:C语言
一个非常有意思的问题,昨天睡觉之后一直在床上思考。 从数轴A点到B点,可以一次跳正负5,正负7,和正负12,求出到达B的最少步数和跳法(AB距离为整数)。 可以采用三叉树的结构进行递归求解,该想法需要对树结构有一定的理解。就是在跳到B点之前,必定是跳5,7,或12三种情况,那么可以递归求出这三种情况的解,哪一种值最小,哪个就是最优的解。但是可以估计,在递归数中,树的深度应该为O(n)(应为必定跳..
开发界 发表于:C语言
·C的链表 C语言 [2012-09-13]
C代码 #include<stdio.h> //定义一个结构类型 structstudent{ intnum; charname[20]; structstudent*next; }; //声明空间分配函数 void*malloc(unsignedsize); //创建链表的函数 structstudent*linklist(){ structstudent*head,*tail,*p; charname[20]; intnum,size=sizeof(structstudent); head=tail=NULL; scanf("%d%s",&num,&name); while(..
开发界 发表于:C语言
·C 语言概览 C语言 [2012-09-12]
本片文章主要是介绍C语言的基础只是,用尽量短和精湛的语言把C语言的主要特性介绍给大家,本篇文章不涉及到C语言的原理,关于具体的细节和异常处理等等问题在后续的文章中将会详细介绍 第一个程序   学习程序的最开始都是要写一个helloworld,通过这个简单的程序,你将会了解到如何创建一个程序代码块;如何成功编译;如何加载以及如何运行这个程序,和这个程序输出什么东西,输出到哪里等等。学习C也是一样,打印..
开发界 发表于:C语言
print?voidquicksort(intnum[],intstart,intend) { intkey=num[start]; intprev=start; intlast=end; if(prev>=last) { return; } while(prev<last) { while(prev<last) { if(num[last]<key) { num[prev]=num[last]; ++prev; break; } --last; } while(prev<last) { if(num[prev]>key) { num[last]=num[prev]; --last; break; } ++pr..
开发界 发表于:C语言
qsort(利用快速排序法排列数组) 相关函数bsearch 表头文件#include<stdlib.h> 定义函数voidqsort(void*base,size_tnmemb,size_tsize,int(*compar)(constvoid*,constvoid*)); 函数说明参数base指向欲排序的数组开头地址,参数nmemb代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项参数compar为一函数指针,这个函数用来判断两个元素间的大小关系,若传给compar的第一个参数所指的元..
开发界 发表于:C语言
  C语言现在还是第一,这是为什么,我个人感觉主要来自“冯式计算机”的主流计算机体系结构,PC、移动,电信网络,C与它们系统层0距离的现状,这样C不坚挺才怪呢。      还有部分归为开源社区的兴起。      
开发界 发表于:C语言
lsearch(线性搜索) 相关函数lfind 表头文件#include<stdlib.h> 定义函数void*lsearch(constvoid*key,constvoid*base,size_t*nmemb,size_tsize,int(*compar)(constvoid*,constvoid*)); 函数说明lsearch()利用线性搜索在数组中从头至尾一项项查找数据。参数key指向欲查找的关键数据,参数base指向要被搜索的数组开头地址,参数nmemb代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项..
开发界 发表于:C语言
#include<stdio.h> //下面就是“全能比较函数”,a>b返回整数,a<b返回负数,a==b返回0 #defineCOMPARE(TYPE,a,b)((TYPE)a-(TYPE)b) intmain(intargc,char*argv[]) { doublea=1,b=1.5,c; intx=10,y=1,z; charm='m',n='n',k; ..
开发界 发表于:C语言
源于一段课程案例的代码,拿编译器编译一下,结果不对,反复查了一下,无意中把结果改出来了,于是修改代码探索原因。虽然还有一些地方不太明确的,先总结一笔。源码是这样的: 01 02 03 04 05 06 07 08 ..
开发界 发表于:C语言
求200或者更大的阶乘都应该没问题,代码如下: [cpp]viewplaincopyprint? #include"stdafx.h" voiddgCal(inta[],intb,inti) { if(i>a[0]) { a[0]++; } inttemp=a[i]+b; if(temp>=10) ..
开发界 发表于:C语言
偶然在网上群里面看到这样一个语句:typedeftypenameT::value_type_type;我的第一反应这是一个自定义类型,没错这就是一句自定义类型,但这和我们平常见到的自定义类型又有不同,T::value_type这块会让大多数人和很不解。其实他的意义就是:这个T必须含有value_type这个成员,也就是说T必须是个类或者命名空间,如果还不明白继续往下看。 [cpp]viewplaincopyprint? //自定义类型1-这是常规自定..
开发界 发表于:C语言
这个题目出现在MS公司的一次面试题当中。公共最近父节点,也叫公共最近祖先(LeastCommonAncestors),就是寻找二叉书中,两个结点最近的祖先结点。 在网上查找资料的时候,看到有Tarjan离线算法,过程比较复杂,我自己写了一个复杂度O(n)的算法,思路比较清晰,算法的长度也只有10行左右。经过简单的测试,可以找到正确结果。欢迎大家指正。 整个过程是一次后续遍历二叉树的过程,在遍历的过程中,会得到所有公共父..
开发界 发表于:C语言
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。 一、要读就读好书,否则不如不读 所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通..
开发界 发表于:C语言
     今天在网上看到了这样一个问题,“如果malloc了一块字符串的内存,然后,它改变了这个字符串的大小,问会不会有一部分内存没有被释放掉。”这个问题,以前的确没有仔细想过。      当然,我觉得是肯定会释放掉的,但是一直没有了解过free的原理,不敢乱说。我看了一下操作系统的内存管理,基本上是这样的,当然各个系统的实现不一样。      操作系统管理内存,维护了一个空闲内存链表,mall..
开发界 发表于:C语言
#include<stdlib.h> #include"algosort.h" /*被排序元素的最大位数,4则意味着只能排序<10000的数*/ #defineWIDTH4 #defineMAXK10//位数划分基于的基数,10表示为10进制划分 voidradixSort(inta[],intn){ inti; voidinnerCountingSort(inta[],intn,intd); for(i=0;i<WIDTH;i++){ innerCountingSort(a,n,i); } } ..
开发界 发表于:C语言
/** *排序过程中使用到的堆的结构 */ typedefstructheap{ intheapSize; int*ap; intapLength; }Heap; /* *调整i位置上的元素,以保持最大堆的性质 */ voidmaxHeapify(inta[],inti,inthSize){ intl,r,largest; l=2*i+1; r=l+1; if(l<hSize&&a[l]>a[i]){ largest=l; }else{ la..
开发界 发表于:C语言
/* *将r位置中的位置移动到正确位置q上,并返回q,使得在a[p]..a[q-1]<a[q], a[q+1]..a[r]>a[q] */ intpartition(inta[],intp,intr); voidqSort(inta[],intp,intr); voidquickSort(inta[],intn){ qSort(a,0,n-1); } voidqSort(inta[],intp,intr){ intq; while(p<r){ q=partition(a,p,r); qSort(a,p,q-1); p=q+1; } } intpartition(inta[],intp,intr){ intx,i,j; x=a..
开发界 发表于:C语言
ProblemDescription: Eddybeginstolikepaintingpicturesrecently,heissureofhimselftobecomeapainter.EverydayEddydrawspicturesinhissmallroom,andheusuallyputsouthisnewestpicturestolethisfriendsappreciate.buttheresultitcanbeimagined,thefriendsarenotinterestedinhispicture.Eddyfeelsverypuzzled,inordertochangeallfriends'sviewtohistechnicalofpaintingpictures,soEddycreatesaproblemforthehisfriendsofyou..
开发界 发表于:C语言
今日IT新闻 最新代码分享
网络·架构·开源 更多
数据库技术 更多
一套数据,多种引擎续-..
最近主要在研究大数典型应用adhoc
开发界 发表于:[MySQL]
·mysql常见优化  [MySQL]
·MongoDB启动失败  [MySQL]
·sqlserver2005 使用  [SQLServer]
·sqlserver2005安装  [SQLServer]
·mysql for window 64安装  [SQLServer]
·oracle 查询时间  [SQLServer]
移动开发 更多
学编程一定要上大学?..
其中一个重要原因是,速成的在线课程和培训班正在..
开发界 发表于:[开发问答]
·byte构造数据总结 [Android平台]
·免费天气预报接口 [Android平台]
·(原创) Elastix& Asteris.. [Android平台]
·JPA主键策略 [Android平台]
·IDE [Android平台]
·Spring Security框架 [Android平台]
·Your Uninstaller [Android平台]
·ArrayExpand [Android平台]
·录制参数为空 [Android平台]
·Xcode警告大全 [IOS开发]
·Android Lint简介 [IOS开发]

关于开发界 | 合作伙伴 | 联系我们 | 友情链接 | 版权声明 | 网站制作 | 网站地图 | 加入收藏 | 设为首页

Copyright@2012-2016 开发界 京ICP备12027873号