Latest web development tutorials

++ C مؤشرات

تعلم C ++ مؤشرات سهلة وممتعة. من خلال المؤشر، يمكنك تبسيط تنفيذ بعض المهام البرمجة C ++، وهناك بعض المهام، مثل تخصيص الذاكرة الديناميكية، ليس المؤشر غير قابل للتنفيذ. لذلك، أريد أن أصبح مبرمجا جيدا C ++، مؤشرات التعلم ضرورية.

كما تعلمون، كل متغير له موقع الذاكرة، ويعرف كل موقع ذاكرة عنوان المشغل الوصول يمكن استخدام الواصلة (&)، وهو ما يمثل عنوان في الذاكرة. النظر في الأمثلة التالية، والتي سوف تحدد الناتج عنوان المتغير:

#include <iostream>

using namespace std;

int main ()
{
   int  var1;
   char var2[10];

   cout << "var1 变量的地址: ";
   cout << &var1 << endl;

   cout << "var2 变量的地址: ";
   cout << &var2 << endl;

   return 0;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

var1 变量的地址: 0xbfebd5c0
var2 变量的地址: 0xbfebd5b6

وعلى سبيل المثال أعلاه، ونحن نفهم ما عنوان الذاكرة وكيفية الوصول إليه. دعونا ننظر إلى ما هو مؤشر.

ما هو مؤشر؟

مؤشر هو متغير قيمته هو عنوان متغير آخر، وهي العنوان مباشرة من موقع الذاكرة.قبل مثل المتغيرات أو الثوابت أخرى، يجب عليك استخدام عنوان ذاكرة المؤشر من المتغيرات الأخرى، وأعلن ذلك. الشكل العام لتعريف المؤشر المتغير هو:

type *var-name;

هنا، نوع هو مؤشر إلى نوع قاعدة، يجب أن تكون أنواعالبيانات صالحا C++،فار-name هو اسم المتغير المؤشر. يستخدم ليعلن مؤشر النجمة * الضرب استخدام النجمة هو نفسه. ومع ذلك، في هذا البيان، يتم استخدام العلامة النجمية لتحديد المتغير هو المؤشر. وفيما يلي تعريف المؤشر صحيح:

int    *ip;    /* 一个整型的指针 */
double *dp;    /* 一个 double 型的指针 */
float  *fp;    /* 一个浮点型的指针 */
char   *ch     /* 一个字符型的指针 */

كل المؤشرات نوع البيانات الفعلي للقيمة، سواء كان ذلك هو عدد صحيح، تطفو، سلسلة، أو أنواع البيانات الأخرى هي نفسها، ويمثل عدد عشري عنوان الذاكرة طويلة. والفرق الوحيد بين الأنواع المختلفة من مؤشر البيانات، يكون المؤشر على أنواع البيانات متغيرة أو ثابتة.

استخدام المؤشرات في C ++

في كثير من الأحيان سوف تستخدم المؤشر عند الإجراءات التالية: تعريف متغير مؤشر، عنوان متغير المخصصة للمؤشر، الوصول إلى قيمة المؤشر متغير العناوين المتاحة. ويتم ذلك باستخدام* مشغل أحادي لإرجاع قيمة المتغير يقع في عنوان المعامل المحدد.وتتعلق الأمثلة التالية لهذه الإجراءات:

#include <iostream>

using namespace std;

int main ()
{
   int  var = 20;   // 实际变量的声明
   int  *ip;        // 指针变量的声明

   ip = &var;       // 在指针变量中存储 var 的地址

   cout << "Value of var variable: ";
   cout << var << endl;

   // 输出在指针变量中存储的地址
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // 访问指针中地址的值
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

C ++ شرح مؤشر

في C ++، هناك العديد من المؤشرات المفاهيم المتعلقة التي هي بسيطة جدا، ولكن من المهم جدا. القوائم التالية يجب أن يكون C ++ مبرمج على بينة من بعض المفاهيم الهامة المرتبطة المؤشر:

概念描述
C++ Null 指针 C++ 支持空指针。NULL 指针是一个定义在标准库中的值为零的常量。
C++ 指针的算术运算 可以对指针进行四种算术运算:++、--、+、-
C++ 指针 vs 数组 指针和数组之间有着密切的关系。
C++ 指针数组 可以定义用来存储指针的数组。
C++ 指向指针的指针 C++ 允许指向指针的指针。
C++ 传递指针给函数 通过引用或地址传递参数,使传递的参数在调用函数中被改变。
C++ 从函数返回指针 C++ 允许函数返回指针到局部变量、静态变量和动态内存分配。