易截截图软件、单文件、免安装、纯绿色、仅160KB

c中和java中数组的区别

  对于原语类型的数组,如int[]   a,在C里面只要这样定义之后就可以用a[i]使用了,但是在JAVA里面是不行的,必须用int[]   a   =   new   int[LENGTH];来为数组分配空间。这里的a更应该看成C里面的指针,它和C里面的int*   a是一样的,因为这个a(C里面的)也要先malloc一个空间之后才可以用。  
  对于对象数组,则要“两次分配”,如:  
  Object[]   obj   =   new   Object[2];  
  obj[0]   =   new   Object();  
  obj[1]   =   new   Object();  
  因为数组首先是一个句柄,而这个句柄指向的2个空间里面又是存储着两个指向Object类型的句柄。  
  而C里面不完全相同:  
  struct   Object{};  
  struct   Object*   obj   =   (struct   Object   *)malloc(2   *   sizeof(struct   Object));  
   
  其实他们的原理大至是相同的。只不过JAVA里数组的内存分配是在堆里面的,必须用new   来分配,而C里面是在栈里面分配的,定义的时候会自动分配。  
  在《Thinking   in   JAVA》中有更详细的介绍。
java在声明数组的时候不能加数量的.只能初始化的时候加
int[]  a  =  new int[3];  或
int  a[]  =  new int[3];  都行
c语言中,声明的时候加不加数量都可以
int a[3] = {1,2,3};
int a[]  = {1,2,3};


相关文档:

高水平C程序员修养

在大型C语言项目工程或者linux内核中我们都会经常见到两个FASTCALL和armlinkage
两个标识符(修饰符),那么它们各有什么不同呢?今天就给大家共同分享一下自己的心得.
     大家都知道在标准C系中函数的形参在实际传入参数的时候会涉及到参数存放的问题,那么这些参数存放在哪里呢? 有一定理论基础的 ......

C/C++试题

1、bool、float、指针变量与"零值"比较的if语句?
答:
bool flag;   if(flag),if(!flag)
char *p;   if(p==NULL),if(p!=NULL)
float x;  
const float EPSILON = 1e-6;
if((x>=-EPSILON)&&(x<=EPSILON)) //(-0.000001~0.000001)
if((x<-EPSILON)&& ......

c实现的求两个数的乘法逆元

定义:设a对b的乘法逆元是x则可以记为a*x=1 mod b,即a和x的积除以b的余数是1;
 
乘法逆元常用算法是欧几里德算法:
 
//算法求d关于模f的乘法逆元d-1 ,即 d* d-1 mod f = 1
 
  1 。(X1,X2,X3) := (1,0,f); (Y1,Y2,Y3) := (0,1,d)
  2。 if (Y3=0) then return d-1 = null //无逆元 ......

用CSocket构建C/S结构

转帖http://www.cppblog.com/bidepan2023/archive/2008/01/22/41632.html
CSocket派生于CAsyncSocket, 所有施诸于上的操作皆为同步操作。比如Connnect,Receive等。
同步操作的优点是简单易用,但缺点也显而易见,效率低下,因为你必须等到一个操作完成之后才能进行下一个操作。
如果你很关心效率,就应该优先使用CAsyncS ......

c 的 struct,没有结构体名的结构体数据类型

一直对结构体弄的模糊,今天终于有机会澄清了。有个错:不明白没有结构体名的结构体如何像结构体名一样使用。
typedf struct                               st ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号