
آموزش جامع زبان برنامهنویسی C++ مقدماتی تا پیشرفته [0 تا 100 سی پلاس پلاس بهمراه حل تمرین و پروژه ✅] - معرفی اشارهگر (پوینتر) در ++C - قسمت 62
در این بخش از دوره پیشرفته C++، به بررسی مفهوم پوینترها (اشارهگرها) و کاربردهای آنها خواهیم پرداخت. پوینترها یکی از مفاهیم اساسی در C++ هستند که درک صحیح آنها میتواند به شما کمک کند تا برنامههای بهینهتری بنویسید و با حافظه به شیوهای مؤثرتر کار کنید. این آموزش به گونهای طراحی شده است که مباحث پیچیده را به زبانی ساده و قابل فهم ارائه دهد.
اشارهگر (پوینتر) چیست؟
پوینترها یا اشارهگرها متغیرهایی هستند که به جای ذخیرهسازی مقدار داده، آدرس مکانی از حافظه را که داده در آن ذخیره شده است، نگه میدارند. در واقع، پوینترها به شما این امکان را میدهند که با آدرسها و موقعیتهای حافظه تعامل داشته باشید.
ویژگیهای پوینترها
- مقدار: آدرس حافظهای که متغیر اصلی در آن قرار دارد.
- نوع: نوع دادهای که پوینتر به آن اشاره میکند (مثلاً int* برای عدد صحیح، float* برای اعداد اعشاری).
- آدرس: موقعیت پوینتر در حافظه.
کاربردهای پوینترها
1. ارسال آرایهها به توابع
یکی از استفادههای اصلی پوینترها، ارسال آرایهها به توابع است. وقتی یک آرایه را به تابعی ارسال میکنید، در واقع آدرس اولین عنصر آرایه را ارسال میکنید. این روش موجب میشود که تابع به تمامی عناصر آرایه دسترسی پیدا کند بدون اینکه نیازی به کپی کردن کل آرایه باشد.
مثال:
#include
using namespace std;
void printArray(int* arr, int size) {
for (int i = 0; i < size; ++i) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
printArray(myArray, 5);
return 0;
}
2. تخصیص حافظه پویا
پوینترها به شما این امکان را میدهند که حافظه را به صورت دینامیک (پویا) تخصیص دهید. این بدین معناست که میتوانید در زمان اجرا، فضای مورد نیاز را برای دادهها و ساختارهای مختلف اختصاص دهید.
مثال:
#include
using namespace std;
int main() {
int size;
cout << "Enter the number of elements: ";
cin >> size;
int* array = new int[size]; // تخصیص حافظه پویا
for (int i = 0; i < size; ++i) {
array[i] = i * 2;
}
for (int i = 0; i < size; ++i) {
cout << array[i] << " ";
}
cout << endl;
delete[] array; // آزادسازی حافظه
return 0;
}
3. مدیریت دادههای بزرگ و آرایههای چند بعدی
برای مدیریت دادههای بزرگ و آرایههای چند بعدی، استفاده از پوینترها بسیار مؤثر است. با استفاده از پوینترها، میتوانید به راحتی آرایههای چند بعدی را به توابع ارسال کنید و حافظه مورد نیاز را به صورت دینامیک تخصیص دهید.
مثال:
#include
using namespace std;
void print2DArray(int** arr, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
int main() {
int rows = 2, cols = 3;
int** array = new int*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new int[cols];
}
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
array[i][j] = i + j;
}
}
print2DArray(array, rows, cols);
for (int i = 0; i < rows; ++i) {
delete[] array[i];
}
delete[] array;
return 0;
}
نتیجهگیری
پوینترها یکی از ابزارهای قدرتمند در C++ هستند که به شما امکان میدهند با حافظه به شیوهای بهینهتر و انعطافپذیرتر تعامل داشته باشید. با درک و استفاده صحیح از پوینترها، میتوانید برنامههای بهتری بنویسید، دادهها را به صورت مؤثر مدیریت کنید و عملکرد برنامههای خود را بهبود ببخشید. در این آموزش، به بررسی مفاهیم اصلی پوینترها و کاربردهای آنها پرداختیم و چند مثال کاربردی را بررسی کردیم. امیدواریم با این توضیحات، استفاده از پوینترها برای شما سادهتر و کارآمدتر شده باشد.
منابع خارجی مرتبط
ادامه دوره (قسمت 63)
در قسمت بعدی به طریقه ساخت اشارهگر خواهیم پرداخت. اگر سوالی دارید، در بخش دیدگاه مطرح کنید. همچنین ممنون میشم با حمایت دلنشینتون از من و دورهها حمایت کنید.
در این قسمت از دورهی آموزشی C++، قصد داریم یک پروژه ساده و جذاب به نام "کلاک دیجیتال" را به زبان C++ پیادهسازی کنیم. این پروژه...
در این آموزش، با نحوه تعریف، مقداردهی و استفاده از پوینترها آشنا میشوید و نکات مهمی را برای...
معرفی اشارهگر (پوینتر) در ++C
حق کپی ویدئو مجاز نمیباشد
قسمت:
جلسه شصت و دو
نام دوره:
آموزش جامع ++C
زمان ویدئو:
6 دقیقه
مدرس:
مهدی کاظمی
در این قسمت یادخواهید گرفت:
در این بخش از دوره پیشرفته C++، به بررسی مفهوم پوینترها (اشارهگرها) و کاربردهای آنها خواهیم پرداخت. پوینترها یکی از مفاهیم اساسی در C++ هستند که درک صحیح آنها میتواند به شما کمک کند تا برنامههای بهینهتری بنویسید و با حافظه به شیوهای مؤثرتر کار کنید. این آموزش به گونهای طراحی شده است که مباحث پیچیده را به زبانی ساده و قابل فهم ارائه دهد.
