-
مدیر بازنشسته
دو نحوهء گرفتن رفرنس يك آرگومان در يك تابع در ++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
-
کلمات کلیدی این موضوع
مجوز های ارسال و ویرایش
- شما نمیتوانید موضوع جدیدی ارسال کنید
- شما امکان ارسال پاسخ را ندارید
- شما نمیتوانید فایل پیوست کنید.
- شما نمیتوانید پست های خود را ویرایش کنید
-
مشاهده قوانین
انجمن