#include <stdio.h>
#define MAXSIZE 20
typedef int Elemtype;
typedef struct
{
Elemtype data[MAXSIZE];
Elemtype length;
} Sqlist ;
Elemtype GetElem( Sqlist L , int i , int e);
int main(void)
{
int a, b , i;
int f;
b=1;
Sqlist L = {{32 , 39 , 40 , 46 , 1 , 3 , 4},7};
/for(i=0; i<L.length ; i++)
printf (" %d\n", L.data[i]);/
a = 4 ;
b = GetElem( L , a , &f);
//printf("%d\n" , f ) ;已经把f变量的地址传给函数参数指针e,为什么f的值没有改变?
if ( b==1 )
printf("%d\n" , f ) ;
else
printf("0\n " ) ;
}
Elemtype GetElem (Sqlist L , int i , int * e)
{
if( i<=0 || i > L.length-1 || L.length == 0 )
return 0 ;
e = &L.data[i-1] ;
//printf("%d",*e);
return 1 ;
}
*e=L.data[i-1];
//传指针你只能修改地址指向的内容,而不能修改地址
e = &L.data[i-1] ; 改为 *e = L.data[i-1];
指针参数是不能改变指针地址的