>假设我有这个数组
int array[] = {0x00, 0x00, 0x00};
我想对这个数组的每个可能的变体执行某个函数(假设数组中的每个变量的最小值为 0x00,最大值为 0xA)。
int array[] = {0x00, 0x00, 0x00};
*Some Loop*
{
someFunction(array);
}
换句话说,我想对每个可能的排列(从{0x00,0x00,0x00}到{0xA,0xA,0xA})执行一些功能,但是我这样做时遇到了麻烦,所以我寻求帮助。
希望我解释得当,提前谢谢!
for(int i=0x00;i<=0xA;++i){
for(int j=0x00;j<=0xA;++j){
for(int k=0x00;k<=0xA;++k){
someFunction(i,j,k);
}
}
}
更通用的解决方案是这样的
someRecursiveFunction( int *arr, int curbyte, int min, int max)
{
int n;
if( curbyte == 0 ) someFunction( arr );
else for( n = min; n <= max; n++ ) {
arr[curbyte-1] = n;
someRecursiveFunction( arr, curbyte-1, min, max );
}
}
然后在您的主要:
someRecursiveFunction( array, 3, 0, 0xA );