C没有elementsof关键字来获取数组的元素数.所以这通常被计算所取代,sizeof(Array)/sizeof(Array[0])
但这需要重复数组变量名.
1[&Array]是指向数组后面的第一个元素的指针,因此您可以使用:
int myArray[12] = {1,2,3};
int *pElement;
for (pElement = myArray; pElement < 1[&myArray]; pElement++)
{
...
}
Run Code Online (Sandbox Code Playgroud)
取代:
for (pElement = myArray; pElement < &myArray[sizeof(myArray)/sizeof(myArray[0])]; pElement++)
{
...
}
Run Code Online (Sandbox Code Playgroud)
你认为这太混淆了吗?
1[&myArray]是不明显的.我建议你使用临时变量:
size_t count = sizeof array / sizeof *array;
int * const end = &array[count];
for (pElement = myArray; pElement < end; pElement++)
Run Code Online (Sandbox Code Playgroud)
或者更确切地说使用标准索引变量:
size_t count = sizeof array / sizeof *array;
for(size_t i=0; i<count; ++i) {
int *pElement = &array[i];
Run Code Online (Sandbox Code Playgroud)
你做了什么,使用临时变量,因为你可以描述性地命名它们.它将使代码读取速度更快,而不会影响运行时性能(除非编译器是脑后的).
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |