Objective-C 中的 for 循环 - 原始数组
int matrix[3][3] = {
{1,2,3},
{1,2,3},
{1,2,3},
}
我怎样才能循环它?
基本上长度操作是我关心的。
for (int i=0; XXXXX; i++) {
for (int j=0; XXXX; j++) {
int value = matrix[i][j];
}
}
编辑:是否有获取数组大小的动态方法? 像sizeof()
之类的东西?
int matrix[3][3] = {
{1,2,3},
{1,2,3},
{1,2,3},
}
How can I loop over it?
Basically the length operation is my concern.
for (int i=0; XXXXX; i++) {
for (int j=0; XXXX; j++) {
int value = matrix[i][j];
}
}
EDIT: Is there a dynamic way of getting the array size? Something like sizeof()
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于静态创建的数组类型,您可以使用 sizeof 运算符,例如
对于动态创建的数组(即通过指针引用),这将不起作用(sizeof 只会为您提供系统上指针的大小)。 在这种情况下,您需要常量或数组中的哨兵值。 使用哨兵,只需扫描每个轴,直到找到它的长度(这就是 C 字符串的工作原理,使用 \0)。
For statically created array types, you can use the sizeof operator, e.g.
For dynamically created arrays (i.e referened by pointer), this won't work (sizeof will just give you the size of a pointer on your system). In this case, you need either constants, or a sentinal value in your array. With a sentinal, just scan each axis until you find it for the length (this is how C strings work, using \0).
在 C 中我会执行以下操作,尝试:
In C I'd do the following, try:
您可以像在 C 中一样执行此操作:
不过,我建议使用常量而不是神奇的 3。 将使一切更具可读性,尤其是 for 循环。
You can do this just as you would in C:
Though, I recommend using a constant instead of magic 3's. Will make everything more readable, especially the for loop.
顶层数组的长度是 3,每个子数组的长度是 3,所以这应该有效:
The length of the top level array is 3, the length of each sub array is 3, so this should work: