黑马程序员技术交流社区

标题: 想问一下定义数组a[][]。那么在用时a和a[]和a[][]都有什么区别 [打印本页]

作者: 小路8866    时间: 2015-5-18 09:52
标题: 想问一下定义数组a[][]。那么在用时a和a[]和a[][]都有什么区别
这几个有点模糊,求大神给解释一下
作者: unnamed    时间: 2015-5-18 10:42
假设定义了一个数组a[2][2]
a是数组a[2][2]的首地址,即元素a[0][0]的地址,等价于&a[0][0]
a[]代表的也是地址,二维中第一维的首地址。例如a[0]代表的是元素a[0][0]的地址,即a[0]等价于&a[0][0]。
a[1]代表元素a[1][0]的地址,即a[1]等价于&a[1][0]以此类推。。。。
a[][]即数组元素。如a[0][0],a[0][1],a[1][0]a[1][1]
作者: mingjixiaohui    时间: 2015-5-18 16:41
char z[2][3]={{a,s,d},{f,g,h}};

printf("%c",a); //相当于打印第一个数组元素a

printf("%c",a[2]);//想当与打印第二行的首个元素f

printf("%c",a[1][2]);//相当于打印第一行的第二列的元素s
作者: 埃林的奶酪    时间: 2015-5-18 22:25
假设定义了数组a
int a[2][3] = {{1,2,3},
                     {4,5,6}};
a表示数组a[2][3]的第一个元素1:printf("%d",a);表示输出1

同时a也表示数组的地址:printf("%p",a)表示输出数组a[][]在内存中的地址

a[n]表示数组a[][]中第n+1个数组的第一个元素,如a[1]就是4

a[][]表示数组中的具体元素,如a[1][2]表示5






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2