指向数组以后第一个位置的指针也是合法的,这句话有什么用呀.
指向数组之后第一个位置的指针也是合法的,这句话有什么用呀...
指向数组之后第一个位置的指针也是合法的,这句话有什么用呀...
int arr[ 2 ] = {1, 2};
int i = 0;
那我用
while(arr < arr + 2)
{
printf("%d\n", arr[ i++ ]);
}
不也是对的吗
------解决方案--------------------
这里有个概念叫one past the last,在C和C++的STL中被大量应用。
应用这个概念,所有的range都被表示成[begin, end)这样的左闭右开区间。
所以的C/C++的函数(跟range)有关的都是以这样的区间去设计的。
指向数组之后第一个位置的指针也是合法的,这句话有什么用呀...
int arr[ 2 ] = {1, 2};
int i = 0;
那我用
while(arr < arr + 2)
{
printf("%d\n", arr[ i++ ]);
}
不也是对的吗
------解决方案--------------------
这里有个概念叫one past the last,在C和C++的STL中被大量应用。
应用这个概念,所有的range都被表示成[begin, end)这样的左闭右开区间。
所以的C/C++的函数(跟range)有关的都是以这样的区间去设计的。