【数据结构】printf( “ x=%d\n “ ,x)

 

 

&表示 c++ 中的引用调用,==>  对参数的修改结果需要“带回来时” 需要用到。

本质原因: 在 test 函数中,单纯参数的 x(无&),开辟了一个新内存存放参数 x, 将主函数中 x(内存地址和test函数中的 x地址不同) 的值复制过去。 test 函数对x的操作都是对复制值后的新地址进行操作,与主存的x没有关系。   一个是原件,一个是复印件,对复印件进行操作不影响原件。

 

在第二个函数中,参数类型为引用类型,这就代表 &x 的x 不开辟新的地址,而是直接和主函数中的内存是同一个内存,所以在上面进行的操作,直接改变主函数 x。  

 

 

拓展讲解:

printf( " 调用test函数前  x=%d\n " ,x);

其实这里的效果和 java 中打印输出函数效果大致相同, System.out.print( " 调用test函数前 x= ", x) ;

不同点在于:  c语言的 = 后多加了  %d\n   ,    %d\n 的作用是格式化输出(将要输出的数据按照设置的格式要求输出),
==> %d,表示结果只能输出十进制整数,\n是换行符,表示输出字符后换行。