问个简单的问题
c++吧
全部回复
仅看楼主
level 6
lbj2004032 楼主
#include <iostream>
using namespace std;
#define min(a,b) ((a) < (b) ? (a) : (b))
const int size = 10;
int ia[size];
int main() {
     int elem_cnt = 0;
     int *p = &ia[0];
     // 计数数组元素的个数
     while ( min(p++,&ia[size]) != &ia[size] )
         ++elem_cnt;
     cout << "elem_cnt : " << elem_cnt
         << "\texpecting: " << size << endl;
     return 0;
}
为什么结果是:
elem_cnt : 5 expecting: 10
说是因为应用在指针实参p 上的后置递增操作随每次扩展而被应用了两次;
但是我没看懂
希望高手帮忙解答一下,THANKYOU
2010年07月19日 09点07分 1
1