【发布时间】:2021-03-11 06:09:55
【问题描述】:
程序应要求用户输入数组的长度和单元格的值。
为什么用户需要输入比我在条件中写的多 1 个数字?
int main()
{
int length, i, *p;
printf("\n Please enter the length of the array: \n");
scanf("%d", &length);
p = (int*)malloc(length*sizeof(int));
printf("\n Please enter %d values: \n", length);
for(i=0; i<length; i++){
scanf("\n %d \n", &p[i]);
if(i==0){
*(p+p[i]) = p[i];
}else{
*(p+p[i]) += p[i];
}
}
【问题讨论】:
-
*(p+p[i])这是要做什么?为什么要将p[i]添加到p以形成新指针?另外,请提供准确的运行日志——即显示准确的输入和结果。
标签: arrays c input malloc scanf