分类：电脑/网络-程序设计-C/C++
问题：C语言main()main(){intx=1,y=2;intfu 
main ( ) { int  x = 1 ,  y = 2 ; int  func( ) ;y = func (&x , &y);  x = func(&x, &y) ;printf ("x = %d ,  y = %d \n" , x , y ) ;} func ( int  *a,  int  *b){ if  ( *a > *b) ( *a ) -= *b ;else  ( *a ) -- ;return ( *a + *b ) ;}A) x = 2 , y = 1      B) x main ( ) { int  x = 1 ,  y = 2 ; int  func( ) ;y = func (&x , &y);  x = func(&x, &y) ;printf ("x = %d ,  y = %d \n" , x , y ) ;} func ( int  *a,  int  *b){ if  ( *a > *b) ( *a ) -= *b ;else  ( *a ) -- ;return ( *a + *b ) ;}A) x = 2 , y = 1      B) x = 1 , y = 3         ) x = 2 , y = 3        D) x = 1 , y = 2答案是D,求解释及FUNC在程序中什么意思
回答：main ( ) { int x = 1 , y = 2 ;   //定义两个变量x,y,并分别赋予初值int func( ) ; //声明y = func (&x , &y); x = func(&x, &y) ; //调用函数func（），并将返回值赋予x,y,参数是变量x,y的地址。printf ("x = %d , y = %d \n" , x , y ) ; //输出x，y。} func ( int *a, int *b) //函数定义，参数为指针{ if ( *a > *b) //判断传进来的参数大小，实际比较x,y大小( *a ) -= *b ; //如果x>y,x=x-y;else ( *a ) -- ; //否则x=x-1return ( *a + *b ) ; //返回x+y。} 当调用y=func(&x,&y)时，因为此时x=1,y=2,所以，执行x=x-1,此时，x=0.返回x+y即是2。此时，x,y的值分别是0，2。当调用x=func(&x,&y)时，此时，x,y的值分别是0，2，执行x=x-1，x=-1,返回x+y即是2+（-1）=1，此时，x,y 的值分别是，1，2。