摘要: perror()函数的函数原型void perror(char const *message);它会将message信息输出出来,后面再加上错误原因字符串。下面是来自百度百科的实例:#include int main(void){ FILE *fp ; fp = fopen( "/root/noexitfile", "r+" ); if ( NULL == fp ) { perror("/root/noexitfile"); } return 0;} 阅读全文
posted @ 2013-10-24 15:10 平林新袖 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 动态分配内存#include#includeint compare_integers(void const *a,void const *b){ register int const *pa = a; register int const *pb = b; return *pa>*pb ? 1:*pa<*pb ? -1:0;}int main(){ int *array; int n_value; int i; printf("How many values are there?\n"); if(scanf("%d",&n_value 阅读全文
posted @ 2013-10-24 15:03 平林新袖 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 首先,结构在C语言中也是一种数据类型,叫做聚组类型(还包括数组)。他和其他的数据类型是一样的,在定义一个结构体的时候,系统并不会为他真正的分配内存空间(定义的结构体变量要在编译的阶段才分配空间,而结构体指针要显示的使用malloca来分配空间),也就是说,在定义结构体这种数据类型的时候是不会分配内存空间的,只有在定义变量的时候,才会分配。下面是摘自百度百科 对结构题存储的三点:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2) 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会 在成员之间加上填充字节;3) 结构体的总大小为结构体最宽基本类型成员. 阅读全文
posted @ 2013-10-22 15:48 平林新袖 阅读(4632) 评论(0) 推荐(2) 编辑
摘要: 1 package Test; 2 3 public class Demo9 { 4 public static void main(String[] args) { 5 TestSync2 tt = new TestSync2(); 6 7 // 8 new Thread(tt).start(); 9 new Thread(tt).start();10 new Thread(tt).start();11 new Thread(tt).start();12 }13 14 }15 class TestSync2 impleme... 阅读全文
posted @ 2013-10-20 14:01 平林新袖 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 首先,说一下,当某一个类实现了两个接口的时候,两个接口中存在两个相同的方法,在实现的类中只需实现一个方法的方法体。当一个类继承一个类,并且实现一个或者多个接口的时候,其中,父类和父接口中存在相同的方法。 如果子类中存在该方法的实现体或者说是覆盖,则使用该类的对象去掉用该方法时候,其实掉用的是来自接口的实现方法,而不是来自父类方法的覆盖。 如果子类中不存在该方法的实现[或者覆盖],在使用该类对象掉用该方法的时候,就会使用从父类继承的方法。同时将这个从父类继承来的方法当作接口方法的实现,也就可以不再实现接口的方法体。另外值得注意的就是,extends & implements 的书写顺序不 阅读全文
posted @ 2013-10-19 15:14 平林新袖 阅读(4432) 评论(0) 推荐(1) 编辑
摘要: 线程实行顺序问题,求教 阅读全文
posted @ 2013-10-15 09:42 平林新袖 阅读(1143) 评论(3) 推荐(0) 编辑
摘要: 1 package MyTest; 2 3 class TestDemo implements Runnable { 4 5 public void run() { 6 int i = 0; 7 for (int j = 0; j " 9 + i++);10 }11 }12 }13 14 public class Demo1 {15 public static void main(String[] args) {16 TestDemo testDemo = n... 阅读全文
posted @ 2013-10-15 09:11 平林新袖 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 前台程序是相对于后台程序来说的,那么什么是后台程序呢? 【后台程序】就是在启动了start()之前,调用了setDaemon(true)方法,这个线程就变成了后台。如果一个进程中只用后台线程在运行,那么整个进程就会结束。package Test;class CTest implements Runnable { public void run() { while(true) System.out.println(Thread.currentThread().getName()+" is running."); }}public class De... 阅读全文
posted @ 2013-10-15 07:16 平林新袖 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1、新建状态 Thread t1 = new Thread(); 创建之后,就已经有了相应的内存和其他资源,但是还是处于不可运行状态。2、就绪状态 当一个线程使用.start()启动之后就处于就绪状态,就会在队列中排队等待被调度。此时已经具备运行状态。3、运行状态 当一个就绪状态的线程被调度而且分配了CPU资源,就进入了运行状态。此时就会自动调用run()。4、阻塞状态 当一个对象调用了wait() suspend() sleep()方法,线程就会进入阻塞状态。阻塞时,是不进行排队的,直到导致产生阻塞的因素被消除之后,才会进行在队列中排队(就绪状态)。5、死亡状态 当一个线程对象调用... 阅读全文
posted @ 2013-10-14 21:34 平林新袖 阅读(195) 评论(0) 推荐(1) 编辑
摘要: 【通过继承Thread】 一个Thread对象只能创建一个线程,即使它调用多次的.start()也会只运行一个的线程。 【看下面的代码 & 输出结果】 1 package Test; 2 3 class CTest extends Thread { 4 private int tickte = 20; 5 6 public void run() { 7 while (true) { 8 if (tickte > 0) { 9 System.out.println(Thread.currentThre... 阅读全文
posted @ 2013-10-14 21:18 平林新袖 阅读(11930) 评论(0) 推荐(1) 编辑