【數據結構】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是換行符,表示輸出字符後換行。