求解这两个程序,感想

int fun( int  m,  int  *p )

{ m=m+(*p) ;  *p=m*(*p) ;  }

void  main()

{ int  a=5 , b=3 ;

fun ( a , &b ) ;

printf ( “%d,%d” , a +b ) ;

}

 

 

 

 

void fun(char *a,char *b) 

{ while( *a != '\0' )

   {  if ( !(*a>='0' && *a<='9') )

    { *b=*a;  b++; }

  a++ ;

   } 

*b = '\0'

void  main( ) 

{ char  *s=”z=x12+y31” , t[80] ;

fun ( s , t );

printf ( “%d” , strlen ( t ) ) ;

}

printf ( “%d,%d” , a +b ) ;还是 printf ( “%d,%d” , a ,b ) ;

前者输出个29,可能还报错。后者输出5,24。因为函数第一个参数是值参,所以函数不能修改传入变量a的值,而指针可以

第二个应该输出3,函数剔除了输入串中的数字字符。*b = '\0'后面少了个分号