关于指针的问题
程序总是崩溃 不知道哪里出了问题#include <stdio.h>
int *p = NULL;
int *xiao(int arr[])
{/*
int j, *n, y;
y = arr;
for(j=0;j<10;j++)
{
if(y>arr)
{
y=arr;
n=&y;
}
}
return n;
*/
int i, n;
n = arr;
for(i = 0; i < 10; i++)
{
if(n > arr) *p = arr;
}
return p;
}
int main()
{
int arr ={0,1,2,3,4,5,6,7,8,9};
int *min,*max;
min=xiao(arr);
max=da(arr);
printf("min=%d,max=%d",*min,*max);
return 0;
} #include <stdio.h>
int * p = NULL ;
int * xiao(int arr[])
{
int i , n ;
p = & arr ;
for(i = 1 ; i < 10 ; i ++) if(* p > arr) p = & arr ; // 一定要让 p 指向较小的元素,而不是为 * p 赋值,因为 p 之前并未指向有效的变量,不可以用来储存数据。
return p ;
}
int * da(int arr[])
{
int i , n ;
p = & arr ;
for(i = 1 ; i < 10 ; i ++) if(* p < arr) p = & arr ; // 一定要让 p 指向较大的元素,而不是为 * p 赋值,因为 p 之前并未指向有效的变量,不可以用来储存数据。
return p ;
}
int main()
{
int arr ={0,1,2,3,4,5,6,7,8,9} ;
int * min , * max ;
min = xiao(arr) ;
max = da(arr) ;
printf("min = %d , max =%d" , * min , * max) ;
return 0 ;
} #include <stdio.h>
int da(int arr[],int n) // 以数组名作为形参,接收主调函数传递来的实参
{
int i, max;
max = arr;
for (i = 0; i < 10; i++)
{
if (max < arr)
max = arr;
}
return max;
}
int xiao(int arr[],int n) // 以数组名作为形参,接收主调函数传递来的实参
{
int i, min;
min = arr;
for (i = 0; i < 10; i++)
{
if (min > arr)
min = arr;
}
return min;
}
int main()
{
int max, min, arr = { 5,1,2,3,4,0,9,7,8,6 };
int *p1, *p2;
p1 = arr; // 将数组首地址赋给指针
p2 = arr; // 将数组首地址赋给指针
max = da(p1,10); // 以指针作为实参
min = xiao(p2,10); // 以指针作为实参
printf("min = %d ,max = %d \n", min, max);
return 0;
}
页:
[1]