| C , C++ |
| PHP |
| Joomla |
| SEO |
| Mysql Sql |
| Visual Basic |
| Flash Action Script |
| Adobe Air |
| بازدید های امروز | 587 |
| بازدید های دیروز | 1425 |
| تعداد افراد آنلاین | 22 |
| کل بازدید ها | 177780 |
| بازدید کنندگان امروز | 49 |
| کل بازدید کنندگان | 37385 |
| تعداد بازدید مطالب | 212254 |
| تعریف اشاره گر |
|
|
|
Declaring pointers تعریف اشاره گر تکه کد زیر را که در آن دو اشاره گر تعریف شده در نظر بگیرید : struct MyStruct {
int m_aNumber; float num2; }; int * pJ2; struct MyStruct * pAnItem; چهار خط اول یک استراکچر را تعریف میکند . در خط بعد اشاره گری تعریف شده که به یک عدد از نوع int اشاره خواهد کرد .و در خط آخر اشاره گری تعریف شده که به محلی از حافظا اشاره خواهد کرد که از نوع استراکچری است که در بالا تعریف کرده ایم . long * var1, var2;
int ** p3; در خط اول این کد اشاره گری تعریف شده که به محلی از حافظه با فرمت long اشاره خواهد کرد در خط دوم اشاره گری وجود دارد که به اشاره گری دیگر اشاره میکند که اشاره گر دوم به محلی از نوع long hahvi ld;kn int MyFunction( struct MyStruct *pStruct );
اشاره گر ها اغلب به عنوان آرگومان ورودی به تابع نیز استفاده میگردند .در کد زیر چگونگی این تعریف را تابع با ورودی اشاره گر نمایش داده شده است . این کار باعث میشود آدرس یک محل از حافظه به درون تابع ارسال شود و این کار باعث میشود که تغییراتی که تابع اعمال میکند روی متغیر اصلی اعمال شود . ارسال استراکچر از طریق اشاره گر به تابع باعث میشود که بار اضافی به روی پشته برای ذخیره سازی مقدار اصلی استراکچر اعمال نگردد . Assigning values to pointers مقدار دادن به اشاره گر قبل از این در مورد تعریف اشاره گر بحث کردیم . در مرحله بعد نحوه مقدار دادن به اشاره گر را توضیح میدهیم . و نحوه دادن آدرس یک متغیر به یک اشاره گر را توضیح میدهیم . int myInt;
int *pPointer; struct MyStruct dvorak; struct MyStruct *pKeyboard; pPointer = &myInt; pKeyboard = &dvorak; در اینجا pPointer به myint اشاره خواهد داشت و pKeyboard به devorak اشاره میکند . #include <stdlib.h>
/* ... */ struct MyStruct *pKeyboard; /* ... */ pKeyboard = malloc(sizeof *pKeyboard); در اینجا ما محلهای حافظه مورد اشاره اشاره گر هارا به صورت پویا در حین اجرا در اختیار میگیریم و اشاره گر به آن محل ها اشاره میکند . با کمک دو تابع malloc و calloc این عمل انجام میشود . تابع malloc اشاره گری داینامیک به محلی از حافظه ایجاد میکند که سایز آن محل را به عنوان پارامتر میگیرد . static struct MyStruct val1, val2, val3, val4;
struct MyStruct *ASillyFunction( int b ) { struct MyStruct *myReturn; if (b == 1) myReturn = &val1; else if (b==2) myReturn = &val2; else if (b==3) myReturn = &val3; else myReturn = &val4; return myReturn; } struct MyStruct *strPointer; int *c, *d; int j; c = &j; /* pointer assigned using & operator */ d = c; /* assign one pointer to another */ strPointer = ASillyFunction( 3 ); /* pointer returned from a function. */ ادامه دارد ... |
| مطالب تصادفی مرتبط | |