初学者的疑惑,这儿是什么原因,困惑了好久了,大佬们看看
上面说*q=n+1也不对啊,q是一个没有被分配空间的指针,不可以直接给q指向的空间赋值。
还有你这个函数我看了半天也不知道n有啥用;
这如果是个找出数组最大小值的函数,而且n是传入数组的长度的话,我猜你想写的程序可能是这样的
void max_min_value(int arr[], int n) {
max = min = arr[0];
for (int *p = arr; p < arr + n; p++) {
if (max < *p) {
max = *p;
}
if (min > *p) {
min = *p;
}
}
}
应该是*q=n+1;
q=n+1是让指针指向地址n+1,但是你的程序并没有在这个地址分配空间
你让一个指针等于一个整数加一就不对啊;你的q到底是干什么用的我也没看出来啊;还有你的for循环条件判断也不对啊,arr[n]是数组第n项的元素值不是地址值,跟指针比较毫无意义啊。