
آموزش جامع زبان برنامهنویسی C++ مقدماتی تا پیشرفته [0 تا 100 سی پلاس پلاس بهمراه حل تمرین و پروژه ✅] - ویژگیهای اشارهگر - قسمت 64
در این قسمت از دوره C++ به بررسی ویژگیها و عملکردهای مختلف متغیرهای پوینتر یا اشارهگرها میپردازیم. پوینترها ابزارهای قدرتمندی در زبان C++ هستند که با آدرسهای حافظه ارتباط دارند و در این بخش، ویژگیهای مختلف پوینترها را بررسی خواهیم کرد.
تعریف و مقداردهی پوینتر
برای تعریف یک پوینتر، ابتدا باید نوع دادهای که پوینتر به آن اشاره میکند را مشخص کرده و سپس با استفاده از علامت ستاره (*) متغیر پوینتر را تعریف کنید. در اینجا، پوینترها میتوانند به انواع مختلف دادهها اشاره کنند.
تعریف پوینتر
مثال:
#include
using namespace std;
int main() {
// تعریف پوینتر
int* p;
// نمایش مقدار و سایز پوینتر
cout << "Value of p: " << p << endl;
cout << "Size of p: " << sizeof(p) << " bytes" << endl;
// نمایش آدرس پوینتر
cout << "Address of p: " << &p << endl;
return 0;
}
در این مثال، متغیر پوینتر p تعریف شده و اطلاعات مربوط به مقدار، سایز و آدرس آن نمایش داده میشود.
مقداردهی و اندازه پوینترها
پس از تعریف یک پوینتر، مهم است که آن را مقداردهی اولیه کنید تا از اشاره به آدرسهای نامشخص جلوگیری شود. این کار معمولاً با استفاده از nullptr یا NULL انجام میشود.
مقداردهی اولیه پوینتر
مثال:
#include
using namespace std;
int main() {
int* p = nullptr; // مقداردهی اولیه پوینتر به nullptr
cout << "Pointer initialized to: " << p << endl;
return 0;
}
تعریف و استفاده از پوینترها برای انواع مختلف دادهها
پوینترها میتوانند به انواع مختلف دادهها اشاره کنند. در اینجا، پوینترهایی برای انواع مختلف دادهها شامل int
, float
, double
, string
, long
, و vector
تعریف خواهیم کرد.
تعریف پوینتر برای انواع مختلف دادهها
مثال:
#include
#include
#include
using namespace std;
int main() {
int* p1 = nullptr;
float* p2 = nullptr;
double* p3 = nullptr;
string* p4 = nullptr;
long* p5 = nullptr;
vector* p6 = nullptr;
cout << "Size of p1: " << sizeof(p1) << " bytes" << endl;
cout << "Size of p2: " << sizeof(p2) << " bytes" << endl;
cout << "Size of p3: " << sizeof(p3) << " bytes" << endl;
cout << "Size of p4: " << sizeof(p4) << " bytes" << endl;
cout << "Size of p5: " << sizeof(p5) << " bytes" << endl;
cout << "Size of p6: " << sizeof(p6) << " bytes" << endl;
return 0;
}
در این مثال، پوینترهایی برای انواع مختلف دادهها تعریف شده و اندازه آنها نمایش داده میشود.
نحوه استفاده از پوینترها برای متغیرها
برای استفاده از پوینترها، ابتدا باید آدرس یک متغیر را به پوینتر نسبت دهید و سپس میتوانید از پوینتر برای دسترسی به مقدار آن متغیر استفاده کنید.
استفاده از پوینتر برای متغیر
مثال:
#include
using namespace std;
int main() {
int number = 10;
float rate = 6.8;
int* ptr = &number; // نسبت دادن آدرس متغیر number به پوینتر
cout << "Address of number: " << &number << endl;
cout << "Pointer ptr points to address: " << ptr << endl;
cout << "Value at ptr: " << *ptr << endl;
ptr = &rate; // نسبت دادن آدرس متغیر rate به پوینتر
cout << "Address of rate: " << &rate << endl;
cout << "Pointer ptr points to address: " << ptr << endl;
cout << "Value at ptr: " << *ptr << endl; // اینجا خطا میدهد چون نوع داده متفاوت است
return 0;
}
در این مثال، پوینتر ptr ابتدا به آدرس متغیر number نسبت داده میشود و سپس به آدرس متغیر rate نسبت داده میشود. توجه داشته باشید که در این حالت خطایی ممکن است رخ دهد چون نوع دادههای متغیرها متفاوت است.
نتیجهگیری
در این بخش، با ویژگیهای مختلف پوینترها آشنا شدیم و نحوه تعریف، مقداردهی و استفاده از آنها برای انواع مختلف دادهها را بررسی کردیم. پوینترها ابزارهای قدرتمندی هستند که میتوانند در مدیریت حافظه و تعامل با آدرسهای حافظه به شما کمک کنند. با تسلط بر این مفاهیم، قادر خواهید بود برنامههای پیچیدهتری را بهینهسازی کرده و از امکانات زبان C++ به طور مؤثرتر استفاده کنید.
منابع خارجی مرتبط
ادامه دوره (قسمت 65)
در قسمت بعدی به دستور Reference و Dereference خواهیم پرداخت. اگر سوالی دارید، در بخش دیدگاه مطرح کنید. همچنین ممنون میشم با حمایت دلنشینتون از من و دورهها حمایت کنید.
در این آموزش، با نحوه تعریف، مقداردهی و استفاده از پوینترها آشنا میشوید و نکات مهمی را برای...
در این قسمت از دوره آموزشی C++ به بررسی عملگر دی رفرنس (Dereference Operator) میپردازیم. در ابتدا با ...
ویژگیهای اشارهگر
حق کپی ویدئو مجاز نمیباشد
قسمت:
جلسه شصت و چهار
نام دوره:
آموزش جامع ++C
زمان ویدئو:
9 دقیقه
مدرس:
مهدی کاظمی
در این قسمت یادخواهید گرفت:
در این قسمت از دوره C++ به بررسی ویژگیها و عملکردهای مختلف متغیرهای پوینتر یا اشارهگرها میپردازیم. پوینترها ابزارهای قدرتمندی در زبان C++ هستند که با آدرسهای حافظه ارتباط دارند و در این بخش، ویژگیهای مختلف پوینترها را بررسی خواهیم کرد.
