Lvalue thiab rvalue C ++ yog dab tsi?
Lvalue thiab rvalue C ++ yog dab tsi?

Video: Lvalue thiab rvalue C ++ yog dab tsi?

Video: Lvalue thiab rvalue C ++ yog dab tsi?
Video: What is the Difference Between a Pointer and a Reference C++ 2024, Kaum ib hlis
Anonim

TL;DR: “ lus "ob qho tib si txhais tau hais tias "cov lus qhia uas tuaj yeem muab tso rau ntawm sab laug ntawm tus neeg ua haujlwm ua haujlwm", lossis txhais tau tias "qhia uas muaj qhov chaw nyob nco". “ rvalue ” txhais tau tias yog “tag nrho lwm cov kab lus”.

Ib yam li ntawd, lvalue thiab rvalue C ++ yog dab tsi?

Hauv C++ ib lus yog ib yam uas taw tes rau qhov chaw nco tshwj xeeb. Ntawm qhov tod tes, a rvalue yog ib yam uas tsis taw tes rau qhov twg. Feem ntau, rvalues yog ib ntus thiab luv nyob, thaum lus ua neej nyob ntev dua txij li lawv muaj nyob raws li qhov sib txawv. Ib qho txawv txav muaj qhov chaw nco tshwj xeeb, yog li nws qhov lus.

Kuj Paub, L tus nqi ntawm qhov sib txawv yog dab tsi R tus nqi? Txoj hauj lwm: l - tus nqi thiab r - tus nqi Ib l - tus nqi hais txog ib yam khoom uas pheej mus dhau ib qho kev qhia. Ib r - tus nqi yog ib ntus tus nqi uas tsis mob siab tshaj qhov kev qhia uas siv nws.

Ntawm no, Rvalue C ++ yog dab tsi?

Yog li lub npe hloov pauv (xws li x) yog ib qho lvalue, tab sis tus lej lej (piv txwv li 42) yog ib qho rvalue . Txawm li cas los, nyob rau hauv niaj hnub C++ nws yog nuanced ntau tshaj qhov ntawd. Hauv C++, ib rvalue yog ib yam khoom uas tsis muaj npe lossis tus tswvcuab ntawm cov khoom uas tsis yog siv.

Lvalue thiab rvalue hauv Python yog dab tsi?

ib lus yog ib qho kev qhia uas tus unary & tus neeg teb xov tooj tuaj yeem siv tau, whereas an rvalue yog ib qho kev qhia uas unary & tus neeg teb xov tooj tsis tuaj yeem thov.