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

همچنان که پیشتر در فصل توابع در مورد آرگومان های توابع بحث شد می توان از اشاره گر ها بعنوان آرگومان تابع استفاده نمود. در کد زیر از تکنیک inline function بهره می گیریم :

ljk

mm

در کد برنامه نویسی C++ تابعی با نام foo که دارای یک آرگومان از نوع اشاره گر است را تعریف نمودیم. این تابع حاوی آدرس پارامتر ورودی خود است پس یک اشاره گر است. در درون تابع foo ابتدا یک بار مقدار متغیر ورودی که در این تابع نامش y و در تابع main نامش x است راچاپ می کند اما با استفاده از مراجعه به آدرس آن متغیر .

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

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

خوب، در سطر ۷ مقدار متغیر به ۶ تغییر می کند و در سطر بعدی عدد ۶ بعنوان مقدار متغیر جاری درج می گردد. در بازگشت به تابع main چون آرگومان اشاره گر بوده پس تغییرات در آدرس متغیر اعمال شده و با مراجعه کامپایلر به آدرس مورد نظر و چاپ مقدار آن دوباره عدد ۶ چاپ می شود در صورتی که اگر آرگومان معمولی بود ۵ چاپ می شد یعنی همان مقدار اولیه متغیر در این تابع. فراموش نکنید که برنامه از تابع اصلی آغاز می شود بنابراین در ابتدا مقدار x که ۵ است چاپ خواهد شد .