iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0

傳值與傳址,但C++是一個特別的語言比C語言更複雜真要細分可分成3類(傳值,傳址,傳參考),同時指標還可以與常數const並用比如: 指向常數資料的常數指標const int *const ptr =&x; 真是太神奇了捷克,有個笑話說當你想要朋友放棄學程式的方法就是叫他去學C++保證三個月內見效,言歸正傳螞蟻書只是一本入門書而且現在主流還是Java, C, GO,所以本次只複習最簡單的指標範例:

#include <iostream>
using std::cout;
using std::endl;

void cubeByAddress( int * ); // prototype

int main () {

    int number =5 ;
    cout << "Origin value is "<< number << endl;
    cubeByAddress( &number); //pass address to cubeByAddress
    cout << "The new number is " << number << endl;

}

void cubeByAddress( int *nPtr ) {

    *nPtr = *nPtr * *nPtr * *nPtr;  //*nPtr = (*nPtr) * (*nPtr) * (*nPtr);
    
}

這真是超棒範例,一堆星星,第一個cubeByAddress( &number)中的&number是number的記憶體位址傳入cubeByAddress函數中,函數void cubeByAddress( int *nPtr ) 定義它有一個指標參數*nPtr,*nPtr的值value就是number的記憶體位址也就是&number

最後*nPtr花式連乘三次*nPtr * *nPtr * *nPtr後再設還給*nPtr,cubeByAddress是void沒有回傳但靠著傳址將number改成了125,這就是最簡單的傳址示範,別忘了真正的C++還有很多變化讓人馬上想改學其他程式語言真是很棒呢!


上一篇
Day17
下一篇
Day19-多重指標
系列文
少年DevOps的C++奇怪漂流30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言