萌新求助,关于多维数组和指针的问题。
lz看的书是C++ primer第五版的中文版,在这本书的第114页有这么一段(图一)。
按照这段话的意思,ia是多维数组,row如果不加引用就成了int*,导致内层的for语句无法在一个int*中遍历。
在115页又有这样的一段程序(图二)。这个程序里面,*p得到的是int*,为什么能对int*使用begin和end函数呢?既然能,为什么不能使用范围for语句对int*进行遍历?还是我的理解有问题,图二中的*p(或者说q)不是一个int*?
这里我补充一点,之前我在看范围for语句那一部分的时候,就想知道那些标准库容器类型为什么也能适用这个for语句,后来我用其它类型测试了一下,发现VS报错没有可用的begin和end函数(好像是这样),具体范围for语句的原理我还没有学习。
有点乱,希望大神讲解一下……
lz看的书是C++ primer第五版的中文版,在这本书的第114页有这么一段(图一)。
按照这段话的意思,ia是多维数组,row如果不加引用就成了int*,导致内层的for语句无法在一个int*中遍历。
在115页又有这样的一段程序(图二)。这个程序里面,*p得到的是int*,为什么能对int*使用begin和end函数呢?既然能,为什么不能使用范围for语句对int*进行遍历?还是我的理解有问题,图二中的*p(或者说q)不是一个int*?
这里我补充一点,之前我在看范围for语句那一部分的时候,就想知道那些标准库容器类型为什么也能适用这个for语句,后来我用其它类型测试了一下,发现VS报错没有可用的begin和end函数(好像是这样),具体范围for语句的原理我还没有学习。
有点乱,希望大神讲解一下……