我是新來的stackoverflow和C,我有一個問題。我需要編寫一個程序來迭代數組,然後將內容解引用爲零。出於某種原因,我的「zero_out_array」只會將我的數組中的第一個數字更改爲零,而不是其他數字。這裏是我的代碼,任何幫助表示讚賞。想要將我的數組內容設置爲零。只有數組中的第一個數字更改爲零
#include <stdio.h>
void print_array(int* p_array, int num_elements)
{
printf("print_array called:\n");
for (int i = 0; i < num_elements; i++)
{
printf("%d \n", p_array[i]);
}
}
void zero_out_array(int* p_array, int num_elements)
{
printf("zero_out_array called:\n");
*p_array = 0;
for (int j = 0; j < num_elements; j++)
{
printf("%d \n", p_array[j]);
}
}
int main()
{
int main_array[] = { 15, 24, 33, 42, 51 };
print_array(main_array, 5);
zero_out_array(main_array, 5);
return 0;
}
'* p_array = 0;'僅引用數組的第一個元素。 –