اشاره گرها و آرگومان توابع

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
برنامه نویسی پیشرفته
مقاله بعدی:تخصیص حافظه پویا
مقاله قبلی:اعمال بر روی اشاره گرها


اشاره گر ها و آرگومان توابع:

در روش فراخوانی توسط ارجاع باید در آرگومان تابع به جای اسامی متغیرها آدرس آنها را قرار داد و چون آدرس متغیر در اشاره گرها ذخیره می شوند پس پارامترهای تابع باید از نوع اشاره گر باشند.

مثال: برنامه ای بنویسید که 2 عدد را از ورودی گرفته به روش فراخوانی توسط ارجاع آنها را به یک تابع ارسال کرده و در آن تابع جای دو عدد را عوض کند.


#include <iostream>
#include <conio.h>
void main(void)
 {
  int a,b;
  cin>>a>>b;
  swap(&a,&b);
  cout<<"a="<<a<<"b="<<b
  getch();
 }

void swap(int *p, int *q)
 {
  int temp;
  temp=*p;
  *p=*q;
  *q=temp;
 }

اشاره گر از نوع void:

اشاره گری از نوع void می تواند آدرس متغیری را از نوع دیگر در خود جای دهد ولی برای اعمال محاسباتی مانند جمع و تفریق باید نوع اشاره گر قبل از اسم متغیر از نوع void ذکر شود.

int a=10;

int *p;

void *q;

q=&a;

(*(int*)q)++;

p=(int*)q;