pervtine_e 2022-06-30 23:06 采纳率: 50%
浏览 26
已结题

已经把f变量的地址传给函数参数指针*e,为什么f的值没有改变?(语言-c++)

#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 ;
}

  • 写回答

2条回答 默认 最新

  • 真相重于对错 2022-07-01 07:24
    关注
    
    *e=L.data[i-1];
    //传指针你只能修改地址指向的内容,而不能修改地址
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月9日
  • 已采纳回答 7月1日
  • 创建了问题 6月30日