早教吧 育儿知识 作业答案 考试题库 百科 知识分享

不能对2维数组a进行初始化的为什么是A解释下Ainta[3][2]={{1,2,3},{4,5,6}}Binta[3][2]={{1},{2,3},{4,5}}Cinta[3][2]={1,2,3,4,5}Dinta[][2]={{1,2},{3,4},{5,6}}

题目详情
不能对2维数组a进行初始化的 为什么是A 解释下A int a[3][2]={{1,2,3},{4,5,6}} B int a[3][2]={{1},{2,3},{4,5}} C int a[3][2]={1,2,3,4,5} D int a[][2]={{1,2},{3,4},{5,6}}
▼优质解答
答案和解析
1.ss[3]+1,三表示第四个一维数组,二维数组可以看成多个一维数组组成的,如果此处三换为2,效果就是:lse,1表示指针向后移动一个。即指向一维数组中的第二个成员了。 2~是对二进制的位操作,将其数值化为二进值再取反再进行变化吧。注意符号位。 3,同于上,将其转化为二进制后,进行位操作,再转化为十进制的整数。 4,第四题,我也觉得奇怪结果是二 5,指针不指向地址指向什么,指针本来就是指向地址的。只是说不能把你随便定义的址如:1000,直接赋给它。 6,定义的时候并没有定义七位呀,内存有多大就可以写多大。 7,A(++n); 第一次时就调用了,因为作为赋值的了。原因是因为中间变量A〔+n〕,此处调用了缺省构造函数(你这里面的缺省构造函数分明是构造函数)输出2345前析构是:A〔++n〕中的四个,你把printf和构造赋值a〔i〕放在一个for下面,再运行,便会清晰一些。 呵呵,讲了这么多,希望能多给点分,嘻嘻,,,