我正在尝试学习指针,当您不太完全理解它时,它才是真正的 PITA。
我正在尝试打印数组中的所有元素,但只打印了第一个元素。
#include <stdio.h>
int count(const int* numbers, int size)
{
for(; numbers < size; numbers++)
{
printf("%d", *numbers);
}
}
int main(void)
{
int numbers[] = {3, 4, 6, 3, 46};
int result = count(numbers, 5);
printf("%d\n", result);
return 0;
}
count 函数中的循环似乎无法正常工作,因为它只循环了一次,但我不明白为什么。
比较numbers < size
是错误的。
您有 3 个选择:
有一个单独的索引变量:
int count;
for(count = 0; count < size; count++)
{
printf("%d", numbers[count]);
}
有一个单独的“光标”指针:
const int * const end = numbers + size;
for(; numbers < end; numbers++)
{
printf("%d", *numbers);
}
递减 size
:
for(; size != 0; size--, numbers++)
{
printf("%d", *numbers);
}
我是一名优秀的程序员,十分优秀!