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'后面少了个分号