m*********a 发帖数: 3299 | 1 c++ reference和point的区别的
int ia[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; // array of size 3; each element
is an array of ints of size 4
int (&p)[3][4] = ia; // p references to an array of four ints
但是用point的花
int (*q)[4]=ia;//q point to an array of ints 4
都是可以实现*(*(p+1)+2) *(*(q+1)+q)的运算的
为啥不可以写int (&p)[][4] = ia, int (&p)[4] = ia?
为啥 int &p=ia 的p不能继承ia的操作的? | d******b 发帖数: 73 | 2 int (&p)[][4] = ia
的定义是无效的,这个定义申明了一个引用 这个引用 引用了 一个只有 宽度没有长度
的 二维数组。(如果你知道内存布局的话这个明显是不对的。)
int (&p)[4] = ia?
的定义是 一个数组的引用,这个数组有四个整形元素。明显 类型不符。
为啥 int &p=ia 的p不能继承ia的操作的?
也是由于类型不符。 引用怎么知道 ia 是 几乘几的二维数组,还是其他更多? | m*********a 发帖数: 3299 | 3 这个意思是是个数组就是一个类型,reference必须是bound到相应的类型的。
用auto &p=ia这样就没有问题了
【在 d******b 的大作中提到】 : int (&p)[][4] = ia : 的定义是无效的,这个定义申明了一个引用 这个引用 引用了 一个只有 宽度没有长度 : 的 二维数组。(如果你知道内存布局的话这个明显是不对的。) : int (&p)[4] = ia? : 的定义是 一个数组的引用,这个数组有四个整形元素。明显 类型不符。 : 为啥 int &p=ia 的p不能继承ia的操作的? : 也是由于类型不符。 引用怎么知道 ia 是 几乘几的二维数组,还是其他更多?
| a*********a 发帖数: 3656 | 4 你Y还没自我了断?
【在 m*********a 的大作中提到】 : 这个意思是是个数组就是一个类型,reference必须是bound到相应的类型的。 : 用auto &p=ia这样就没有问题了
|
|