如何计算行数和列数C?

时间:2015-09-13 02:01:17

标签: objective-c arrays

我有功能

- (void)sortColor:(int [3][3])colors

有没有办法计算Objective-C中的行和列? 我知道这不是一个nsarray。我想知道有没有简单的方法来计算行和col?

我得到了col但行

col = sizeof(colors [0])/ sizeof(* colors [0])

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

假设您考虑第一个数组计算行,例如:int arr[# rows][# columns] = ...

这就是你要找的东西:

int rows = sizeof(arr) / sizeof(*arr);
int columns = sizeof(arr[0]) / sizeof(*arr[0]);

这并不是简单地返回您创建C数组的大小,而不是实际存在的值的数量。如果这是你的目标,你确实需要使用与上面概述的结构不同的结构。

答案 1 :(得分:0)

嗯,在Objective-C或Swift中没有像2D数组那样的东西。这就是你如何模拟行为:

NSMutableArray *row1 = [NSMutableArray arrayWithObjects:@"1", @"2", nil];
NSMutableArray *row2 = [NSMutableArray arrayWithObjects:@"3", @"4", nil];
NSMutableArray *row3 = [NSMutableArray arrayWithObjects:@"5", @"6", nil];

NSArray *multiArray = @[row1, row2, row3];

NSInteger rowCount = multiArray.count;
NSInteger columnCount = row1.count; // believing each row object have same number of objects

答案 2 :(得分:-1)

使用count方法获取NSArray中的项目数。请注意,int arr[3][3] 不是 NSArray,它是标准C数组。您通常无法获得标准C阵列的数量,您必须自己跟踪它。