关于引用的疑惑
/*对于使用传递的值而不作修改的函数:如果使用数据对象是数组,则使用指针,因为这是唯一的选择,并将指针声明为指向const的指针;对于修改调用函数中的数据的函数:如果数据对象是数组,则只能使用指针*/
1 #include <stdio.h> 2 3 int for_each( int (&int_ref)[10] ) 4 { 5 int_ref[0] = 99; 6 for( int i=0; i<10; ++i ) 7 printf("int_ref[i] is %d.\n", int_ref[i]); return 0; 10 } 11 12 int main() 13 { 14 int i,j; 15 int & ref1 = i; 16 ref1 = 22; 17 int ref[] = {ref1, j}; 18 19 int int_array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 20 21 for_each( int_array ); 22 23 printf("int_array[0] is %d, ref[0] points to %p, i points to %p\n", int_array[0], &ref[0], &i); 24 printf("ref[0]=%d, %d, %d\n",ref[0], ref1, i); 25 26 27 ref[0] = 1; 28 ref[1] = 2; 29 printf("ref[0]=%d, %d, %d\n",ref[0], ref1, i); 30 printf("ref[1] = %d, j=%d\n", ref[1], j); 31 return 0; 32 }