           ,  
    ip,     

    f(&ivar);   //   ivar 

       *ip = 1234;   1234  
ivar,     f().    
,   : 

    void f(int &ir) 
    ir = 1234; 

     ip   ir,    1234.  

    f(ivar);   //  ivar   

   :  ivar no   
f(),   ir   ivar,  ivar  1234. 

         

           ,    
,   . ( ,    
     ).  , 
  

    double &ref(double d); 

     ,    
     ,   -   . 
     12.17       
   .     
 ,      , ,  
 ,      ,  
  ANSI .    C++     
,     ,  ,   
    .    ,  
     0  9,    
.        <Enter>. 

     12.17.   REFFUNC.CPP ( )

    1:	&include <iostream.h> 
    2:	&include <stdlib.h> 
    3:	&include <string.h> 
    5:	&define FALSE 0 
    6:	&define TRUE 1 
    7:	&define SIZE 10 
    8:	&define BUFLEN 20 
    9: 
    10:	double &ref(int index); 
    11:	void ShowArray(void); 12: 
    13:	double array[SIZE]; 14: 
    15:	main() 
    16:	{ 
    17:	int done = FALSE, index; 
    18:	char buffer[BUFLEN]; 
    19: 
    20:	for (index = 0; index < SIZE; index++) 
    21:	   ref(index) = index; //   ! 
    22:	while (Idone) { 
    23:	  ShowArray(); 
    24:	  cout  "\nEnter index from 0 to 9, Enter to quit:"; 
    25:	  cin.getline(buffer, BUFLEN); 
    26:	  done = (strlen(buffer) ==0); 
    27:	  if (Idone) { 
    28:	    index = atoi(buffer); 
    29:	    cout  "Enter floating-point value:"; 
    30:	    cin,getline(buffer, BUFLEN); 
    31:	    ref(index) = atof(buffer); 
    32:	  } 
    33:	} 
    34:	return 0; 
    35:	} 


     12.   C++     301 
