Chinaunix首页 | 论坛 | 博客
  • 博客访问: 333833
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 321
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-04 16:09
文章分类

全部博文(124)

文章存档

2014年(124)

分类: LINUX

2014-08-04 22:58:23

data_type array[M][N];
data_type *array_p;
 
  在gcc编译器里,如果直接进行赋值——array_p = array;回有指针赋值不匹配警告出现,因为在上面的赋值过程中,其实是将一个二级指针array赋值给array_p。
 
  下面就对一个二维数组名做一个简单的说明,如上定义了一个二维数组后,array[0]、array[1]、array[2]、...array[M-1]都是一个指针,故array可以理解为一个指针数组,即array就是一个二级指针。
 
  很多人使用二维数组的时候会将二维数组当成一位数组来使用,其实这种想法是不对的,例如,*(array+i*4+j)大家以为是在输出第i行j列的元素来,其实不是;当i=0时,上面的操作得到的是第j行的N个元素,而不是一个data_type元素,当i不是0的时候,输出地可能就是我们自己都不知道的东西。但是编译器不会报错,这是因为我们是直接面向地址的操作,不会产生数组下标越界导致的段错误之类的报告,因此在这儿有必要做一个日记。如果有不合适的地方,往各位高手指点。
 
阅读(528) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~