匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 10 年前

C++裡面的void是什麼??

哪位高手可以告訴我

void cubeByReference( int * );

的void是什麼呀

出自以下程式:

#include <iostream>

using std::cout;

using std::endl;

void cubeByReference( int * ); // prototype

int main()

{

int number = 5;

cout << "The original value of number is " << number;

cubeByReference( &number ); // pass number address to cubeByReference

cout << "\nThe new value of number is " << number << endl;

return 0; // indicates successful termination

} // end main

// calculate cube of *nPtr; modifies variable number in main

void cubeByReference( int *nPtr )

{

*nPtr = *nPtr * *nPtr * *nPtr; // cube *nPtr

}

1 個解答

評分
  • 10 年前
    最佳解答

    在那一邊的的void指的是該function不宣告回傳資料型態=>不用return帶資料回主程式中!以上例來說,他在呼叫時就把變數的儲存位址傳進去給cubeByReference() function進行處理

    void cubeByReference( int * ); // prototype這就有宣告說他的引數是整數型的指標,別想太多就看成是放變數的記憶體位置,而且也宣告說這放的是整數!

    在main function進行呼叫時送入了變數number的記憶體位置

    再來看下面的function主體

    進面的*nPtr = *nPtr * *nPtr * *nPtr; // cube *nPtr有點嚇人不過如果加上"()"就非常清楚了!

    *nPtr = (*nPtr) *( *nPtr) * (*nPtr); // cube *nPtr為了解說方便才加上的

    //nPtr 就是我們所呼叫時所傳入的int型指標,而*nPtr 指的是他所指向的那一筆資料(可以看成是在那一個記憶位置所容納的整數資料值)

    那此funcion就是告知它的整數變數number的記憶體位置,而他會去那一個位置取資料並於三次方運算後"放回原位"

    綜合以上,他就不用return資料回main function,但是運算後的值會直接蓋入之前的變數中!

還有問題?馬上發問,尋求解答。