二维数组与数组指针的用法 二维数组指针传递
看下面的例子:#include<iostream>using namespace std;int main(){ int v[2][10]={{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}; int (*a)[10]=v; cout<<sizeof(v)<<endl; // 整个二维数组的大小4*2*10=80 cout<<sizeof(a)<<endl; // 指针大小4个字节 cout<<**a<<endl; //输出数组首个元素1 cout<<*a<<endl<<a[0]<<endl<<a<<endl; //&v[0][0]的值 cout<<**(a+1)<<endl<<*(a[1])<<endl; //输出数组第二行的首个元素11 cout<<*(*a+1)<<endl<<*(a[0]+1)<<endl; //输出数组第一行的第二个元素2 return 0;}运行结果如下:80410012FEF80012FEF80012FEF8111122通过上面的例子,我们总结二维数组和数组指针的用法如下:一维数组a,如int a[5],a相当于一个指针常量(指向内容不能变),类型为int [5] (等价于指针中的类型int *),指向这个数组的首个元素,a的值为&a[0]。二维数组b,如int b[2][5],b相当于一个指针常量,类型为int [2] [5] (等价于指针中的类型int (*)[5]),指向这个数组的首行元素,a的值为&b[0][0]。具体用法如下:① b+1表示一个新指针,其指向的位置相对于b向后移动了1*sizeof(数组每行),即指向数组的第二行元素。其值为&b[1][0]。注意,这里不能用 b++,因为b的值不能改变。 ②*b也相当于一个指针,指向b所指向的那行元素的首个元素,类型为int [5],*b的值也为&b[0][0]。 ③b[0]用法同*b,表示指向b中首行元素的首个元素的指针,类型也为int [5],b[0] 的值同样是&b[0][0],b[1]对应于*(b+1)。 ④b[i]+j, *(b+i)+j 就表示了指向二维数组b中位置为(i ,j)的元素的指针。 ⑤虽然b,*b,b[0]的值相同,但由于其指向类型不同(或者说自身类型不同),用法就不一样。 ⑥如果定义一个数组指针,如int (*p) [5]=b,上述b的用法都适用于p。
更多阅读
壹基金救援联盟公益课堂 周三叶兴蓉与您分享叶子的户外植物第 壹基金救援联盟 官网
每周三在思凯乐户外生活馆开办的户外公益培训课堂,由绿野救援队快反组成员与大家共同分享各方面知识!本期分享主题:叶兴蓉与您分享叶子的户外植物第一期嘉 宾:叶兴蓉时间:2014.9.3(星期三) 18:45-20:30地点:
亡国公主与灭国仇人的罪爱:华胥引
基本资料亡国公主与灭国仇人的罪爱:华胥引作者: 唐七公子出版社: 现代出版社出版年:页数:定价: 39.8装帧:ISAN:内容简介城破之日,卫国公主叶蓁以身殉国, 却被人用鲛珠复活。死而复生的叶蓁只有一个宿命:活下去、复仇。当她弹起华胥调,便可为
桐瑶:我与邓丽君的不解之缘
她被誉为“小邓丽君”,清丽可人,摇曳生姿,举手投足、颦笑之间,颇具一代歌后的神韵,迄今已在海内外举办了数十场邓丽君经典金曲演唱会,柔情似水的歌声寄托了人们对邓丽君的无限怀念之情。近日,在接受本报独家专访时,她娓娓道出了与邓丽君的
二维数组与数组指针的用法 二维数组指针传递
二维数组与数组指针的用法 严格地说,一个指针是一个地址,是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。既然指针变量的值是一个地址,那么这个地址不仅可以是变量的地址,也可以是其它数据结构
分数乘整数与整数乘分数的意义相同吗 分数的意义说课稿
分数乘整数与整数乘分数的意义相同吗重庆市涪陵区实验小学 杨清会《分数乘法》是人教课标版小学数学六年级上册第二单元的内容。第一节分数乘法的教学安排了分数乘整数和分数乘分数以及混合计算三个层次,其中分数乘法(一)讲分数乘整