多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > [C++] 變量、指針、引用作函數參數的區別

[C++] 變量、指針、引用作函數參數的區別

來源:程序員人生   發布時間:2014-12-12 08:03:44 閱讀次數:3299次


//============================================================================ // Name : CppLab.cpp // Author : sodino // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <string> using namespace std; struct Student{ string name; }; int main() { void print(Student); void print_point(Student *); void print_reference(Student &); struct Student stu = {"Yao ming"}; cout << "main &stu=" << &stu << endl << endl; print(stu); cout << "after print() name=" << stu.name << " no changed."<< endl << endl; print_point(&stu); cout << "after print_point() name=" << stu.name << " has been modified." << endl << endl; print_reference(stu); cout << "after print_reference() name=" << stu.name << " has been modified." << endl; return 0; } void print(Student stu) { // 實參轉形參,會消耗額外的時間。print_reference()則效力高許多。 cout << "print() stu address=" << &stu << " is different."<< endl; // 形參stu與函數體外的stu是兩個不同的對象!! stu.name = "new.name"; // 這里的賦值其實不會改變函數體外stu的name cout << "print() set new name=" << stu.name << endl; } void print_point(Student * stu) { stu->name = "new.point.name"; cout << "print_point() set new name=" << stu->name << endl; } void print_reference(Student &stu) { stu.name = "new.reference.name"; cout << "set new name=" << stu.name << endl; }


main &stu=0x7fff5eabfbc8 print() stu address=0x7fff5eabfba0 is different. print() set new name=new.name after print() name=Yao ming no changed. print_point() set new name=new.point.name after print_point() name=new.point.name has been modified. set new name=new.reference.name after print_reference() name=new.reference.name has been modified.

print():用結構體變量作為實參和形參,簡單明了,但在調用函數時形參要額外開辟內存,實參中全部內容通過值傳遞逐一傳給形參。造成空間和時間上的浪費。
print_point():指定亦是作為實參和形參,實參只是將stu的起始地址傳給形參,而不是逐一傳遞,也沒有額外的內存開辟,效力高。但可讀性可能不是很好。
print_reference():實參是結構體Student類型變量,而形參用該類型的援用,在履行函數期間,函數體操作的stu是函數體外的stu,可讀性亦強。

C++中增設援用變量,提高效力的同時保持了高可讀性。






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: yellow日本 | 免费澳门一级毛片 | 久久久精品成人免费看 | 久久精品国产免费一区 | 欧美最猛性xxxxx图片 | 精品国免费一区二区三区 | 日日摸人人看97人人澡 | 国内免费视频成人精品 | 99伊人 | 中国人黑人xxⅹ性猛 | 欧美性videostv极度另类 | 一级做a级爰片性色毛片视频 | 有色视频在线观看免费高清 | 另类专区另类专区亚洲 | 亚洲精品色一区二区三区 | 在线观看视频中文字幕 | 日韩 欧美 亚洲国产 | 自拍偷拍免费视频 | 12306ys午夜播播在线影院 | 伊人久久中文大香线蕉综合 | 久久伊人网站 | 国产三级在线观看视频 | 亚洲小说区图片区另类春色 | 一级毛片在播放免费 | 亚洲成人小视频 | 亚洲精品免费观看 | 一级毛片aaaaaa视频免费看 | 国产成人精品免费视频大全五级 | 国产一区二区三区在线观看精品 | 午夜秋霞成人理论 | 欧美一级性生活视频 | 秋霞一级在线理论片欧美 | 国产69成人免费视频观看 | 免费欧美在线视频 | 在线日韩麻豆一区 | 三级爱爱 | 亚洲欧美精品一中文字幕 | 亚洲黄色影片 | 亚洲嫩草影院久久精品 | 欧美一区二区三区四区在线观看 | 亚洲综合精品一二三区在线 |