-
مدیر بازنشسته
دو نحوهء گرفتن رفرنس يك آرگومان در يك تابع در ++c
کد:
#include <iostream>
//using namespace std;
int * j;
void f(int& v) {
j=&v;
}
int main () {
int i=111, tmp;
f(i);
*j=222;
cout << i << endl;
cin >> tmp;
return 0;
}
خروجي: 222
کد:
#include <iostream>
//using namespace std;
int * j;
void f(int * v) {
j=v;
}
int main () {
int i=111, tmp;
f(&i);
*j=222;
cout << i << endl;
cin >> tmp;
return 0;
}
خروجي: 222
بنده در اينجا دو روش را براي گرفتن آدرس يك متغيير آرگومان در يك تابع تست كرده ام كه ظاهرا (با توجه به خروجي) هردو در سي++ كار ميكنند. در روش اول ما نيازي به گذاشتن علامت & قبل از آرگومان در هنگام پاس كردن به تابع نداريم.
ميخواستم بدانم نظر شما چيست و كدام روش بهتر و اصولي تر است و آيا اصولا هردو درست هستند يا خير (نتيجه ميتواند تصادفي باشد).
ناگفته نماند كه اين روش را براي متغيير حاوي يك نمونه از يك كلاس هم تست كردم كه نتيجه مشابه بود:
کد:
#include <iostream>
//using namespace std;
class c {
public:
int i;
} cc;
c * j;
void f(c & v) {
j=&v;
}
int main () {
int tmp;
cc.i=111;
f(cc);
j->i=222;
cout << cc.i << endl;
cin >> tmp;
return 0;
}
خروجي: 222
کلمات کلیدی این موضوع
مجوز های ارسال و ویرایش
- شما نمیتوانید موضوع جدیدی ارسال کنید
- شما امکان ارسال پاسخ را ندارید
- شما نمیتوانید فایل پیوست کنید.
- شما نمیتوانید پست های خود را ویرایش کنید
-
مشاهده قوانین
انجمن