آموزش کار با اشاره گر به اشاره گر در c++

آموزش کار با اشاره گر به اشاره گر در c++ سی پلاس پلاس

همانطور که گفته شد اشاره گر یک متغیر استکه در ابتدایحافظه قرار دارد بنابراین میتوان آدرس آن رادر یک اشاره گر دیگر ذخیره کرد.

در شکل زیر مفهوم کار با اشاره گر به اشاره گر در c++ توضیح داده شده است:

اشاره گر به اشاره گر در c++ سی پلاس پلاس

اکنون به کد زیر دقت کنید:


void main()
{
int ** P ;
int * q ;
int x ;
P= & q ; q= & x ; ** p=20
}

برای کار با اشاره گر به اشاره گر در c++ سی پلاس پلاس از ** قبل از متغییر استفاده می گردد.

در اولین دستور       آدرس q  را در p  میگذارد . در دومین دستور       آدرس x  را در q  قرار میدهد بنابراین محتویاتی که در x  باشد در p  خواهد بود.

به عبارت دیگر p  آدرس q  است و چون q به x  اشاره میکند **p همان q است یا عبارت داخل .x

آرایه ای از رشته ها :

در c آرایه ای از رشته ها به وسیله ی آرایه ای دوبعدی کاراکتری پیاده شود.


Void main()
{
char s[10][100];
gets( s[3] );
}

s[10][100] یعنی ده رشته به طول (99) کاراکتری

gets(s[3]) یعنی چهارمین رشته از آرایه ی ده تاییرا که طولش 99 کاراکتری است دریافت میکند.

مثال:

برنامه ی زیر ده رشته را از ورودی دریافت می کند سپس اگر رشته ی ss در یکی از این دو پیدا شد yes چاپ میکند وگرنهNo چاپ میکند.


Void main()
{
char s[10][100], ss[100];
int i , j;
for(i=0 ; i<10; i++)
gets(s[i]);
gets( ss);
for( i=0 ; i<10 ; i++)
{
for( j=0 ; s[ i]&& ( s[ i][ j]== ss[ j] ) ; j++);
if ( ss[j]==0) break;
}
if ( ss[ i]==0 )
cout << " yes " ;
else cout<< " No " ;
}

توابع :

یک برنامه ی زبان c تشکیل شده است از تعدادی تابع.

شکل کلی تعریف تابع به صورت زیر است :

( نام و نوع پارامترها) نام تابع   نوع تابع

}

مجموعه دستورات تابع

{

 

نکته : نوع تابع مقداری را که تابع قرار است باز گرداند مشخص میکند.

فعلا در نظر میگیریم توابع ترکیب خاصی ندارند یعنی میتوانند قبل و یا بعد از main بیایند. در ابتدای برنامه باید الگو یا پروتوتیپتوابعی که بعد از main می آیند را معرفی کنیم.

الگوی تابع void fl ( void) ;

void main ()

{

فراخوانیfl () ;

}

تعریف تابع :

void fl ()

{

}

در زبان c توابع به دو دسته زیر تقسیم میشوند:

الف) توابعی که فقط کاری انجام میدهند و مقداری را بازنمی گردانند. این توابع از نوع void  معرفی میشوند.

ب) توابعی که علاوه بر انجام کار یک مقدار نیز برمی گردانند.

مثال:

این تابع دو عدد را میگیرد و اولی را به توان دومی میرساند.

void p( void);

void main()

{

p() ;

}

void p()

{

int a , b , i ;

long int c=1 ;

cin >>a >>b ;

for (i=0 ; i<b ; i++)

c* = a ;

cout<< c ;

}