码迷,mamicode.com
首页 > 编程语言 > 详细

<24>【掌握】二维数组指针定义、初始化+

时间:2015-07-10 02:08:59      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

【掌握】二维数组指针定义、初始化

 

数组指针:
 
    定义一个指针变量,让这个指针变量指向一维数组的元素
 
 
 二维数组指针
 
     行指针,用来指向二维数组的每一行,存放的是行的首地址
    
     定义格式:  数据类型  (*行指针变量名)[数组第二维的长度];
    
 二维数组指针的初始化
 
   int a[2][3];
   int b[2][2];
   float f1[4][4];
 
   //假设我要定义一个指向数组a的一个行指针
   // a  = &a[0]  = &a[0][0]  = a[0]
   int (*p)[3] = a;
 
  二维数组指针的使用
 
    *(*(p+i)+j)  //就是获取二维数组的每个元素
 
 1 #include <stdio.h>
 2 
 3 int main(int argc, const char * argv[]) {
 4     int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
 5     
 6     //二维数组指针
 7     //二维数组指针可以替代数组名去使用
 8     int (*p)[4] = a;
 9   
10     for (int i=0; i<3; i++) {
11         for (int j=0; j<4; j++) {
12             //遍历数组
13             printf("%d\t",*(*(p+i)+j));   //如果是*(*(a+i)+j)可以,因为其是常量,相当于取地址但是你上面 int *p=a;
14         }                                 //这时候下面*(*(p+i)+j)就会报错,因为此时p是一个变量,你*就是取值,定义二维数组指针应该就是解决这个问题
 15 printf("\n"); 16  } 17 18 return 0; 19 }
1    3    5    7    
9    11    13    15    
17    19    21    23    

 

<24>【掌握】二维数组指针定义、初始化+

标签:

原文地址:http://www.cnblogs.com/kongweiiwei/p/4634621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!