当前位置:首页
开发技术指南» 文章正文
    引言:

 ·删除表数据时太慢的原因    »显示摘要«
    摘要: 经过一年多的运行,历史数据和过程化数据越积越多,准备清除一下。[有选择删除] 但有个表删除数据很慢,发现它的索引(3个,其中有一个联合索引)和外键(5个)都比较多,请问主要是什么原因导致的?我应该采用什么措施(譬如先去除索引,删掉后再加上?)? 谢谢! ......
    摘要: 如题 ......


关于指针的指针和二维数组的疑问

书上说,二维数组名就是指针的指针。数组名是指向二维数组的行地址存储空间的首地址,也就是指针数组。那么:  
   
  int   a[3][3]   =   {1,2,3,4,5,6,7,8,9};  
   
  a   ->   a[0]   a[1]   a[2]  
   
    a[0]->       1   2   3  
    a[1]->       4   5   6  
    a[2]->       7   8   9  
   
  如果:  
   
  int   **p;  
  p   =   a;  
   
  为什么P就能等价于a了呢?我真的是想不明白。请指教。

NO.1   作者: copygirl

int   aa[2][2]={1,2,3,4};  
  int   *p;  
  因为二维数组是线性结构,可以把它看成一维数组,aa[4]={1,2,3,4};  
  这时,p=aa,p指向的是aa中的第一个元素,所以*p=1;  
  同理,*(p+1)=2;,*(p+2)=3;,*(p+3)=4;  
   
  如果想告诉编译器,p指向的空间是一个二维空间,则可以构造一个二维指针数组,每个指针指向二维数组中的一个元素:int   *p[2][2](不带括号相当于   int   *(p[2][2])   ),此时,用p[0][0]=aa,表示将aa数组中的第一个元素的地址赋给p指针数组中的第一个指针,于是,打印*p[0][0],就可以打印出1

NO.2   作者: Basin_Fish

to   copygirl(wa!)    
   
  为何要定义个二维的指针数组,定义一个一维的指针数组对二维数组进行行的操作  
  int   *a[3];  
  int   aa[3][5];  
  a[0]=aa[0][0];  
  a[1]=aa[1][0];  
  a[2]=aa[2][0];  
   
  a[0]->aa[0][0]       aa[0][1]     aa[0][2]     aa[0][3]     aa[0][4]  
  a[1]->aa[1][0].....  
  a[2]->aa[2][0]  
   
 


 ·vb达人,这段代码该如何修改    »显示摘要«
    摘要: 演示操作记事本 private sub command1_click() shell "notepad", vbnormalfocus 打开记事本 sendkeys "powerbasic中国", true 键入一些字符 sendkeys "%fa", true 打开另存为对话框 sendkeys "c:\powerb......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE