PDA

View Full Version : اشاره گر به تابع چه فرقی با تابع های معمولی دارد؟



complexcoding
دوشنبه 29 اسفند 1390, 16:39 عصر
دوستان سلام
می خواستم بدونم اشاره گر به تابع چه فرقی با تابع های معمولی دارد؟ چرا استفاده می کنیم ؟ اگر با مثال باشه ممنون می شم لطفا کمکم کنید .
خیلی ممنون

بهروز عباسی
دوشنبه 29 اسفند 1390, 16:55 عصر
دوستان سلام
می خواستم بدونم اشاره گر به تابع چه فرقی با تابع های معمولی دارد؟ چرا استفاده می کنیم ؟ اگر با مثال باشه ممنون می شم لطفا کمکم کنید .
خیلی ممنون
تابعی که با اشاره گر کار میکنه دستور return نداره یعنی هیچ مقداری رو به صورت مستقیم برنمیگردونه بلکه مقدار خروجی رو در متغیری از نوع اشاره گر وارد میکنه بعد برای استفاده از خروجی باید از اون متغییر استفاده کرد

اینـــــــــو (http://barnamenevis.org/showthread.php?332988-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%A7%D8%B1%D8%A7%DB%8C%D9%87-%D9%87%D8%A7%D8%9F%D8%9F%D8%9F) ببین مثاله بد نیست

Arcsinos
دوشنبه 29 اسفند 1390, 17:16 عصر
سلام دوست گرامی، و با اجازه از دوست گرامی Sam7Sam7 فکر میکنم منظور دوست عزیزمون یه چیز دیگه بود . همشهریه گرامی ComplexCoding عزیز ، فکر کن یه تابعی داری مثلا بعپه نام fx و دو تا پارامتر میگیره و معلوم نیست با این دو تا پارا متر میخوای چی کنی، و فکر کن که دو تا تابع دیگه به اسم های f1 و f2 داری که دو تا پارامتر میگیرن و f1 جمع اون دوتا عدد رو میده و f2 ضرب اون دو تا عدد رو . (در ساده ترین حالت) . حالا تو میخوای توسط یه تابع هم بتونی دو تا عدد رو جمع کنی و هم بتونی دو تا عدد رو ضرب کنی ( جعل الخالق، مگه میشه) . چرا نمیشه فقط کافیه توی تابع fx یا اشاره گر بسازی به یه تابعی که دو تا پارا متر میگیره و بعد موقع فرا خونی آدرس تایعی که میخوای رو بریزی تو این اشاره گر . با مثال بگم که بفهمی :
یه تابع داریم به نام ((int fx(int a,int b, int *op(int,int این یه تابع است که دو تا عدد میگیره و آدرس یه تابعی که دو تا پارامتر از نوع int میگیره .
دو تا هم تابع به این صورت داری (int sum(int,int که جمع دو عدد رو میده و (int mul(int,int که ضرب دو تا عدد رو میده . حالا میخوای توسط تابع fx دو تاعدد رو جمع کنی توی تابع main این کارو میکنی (fx(a,b,&sum و اگه میخوای دو تا عدد رو ضرب کنی اینطوری تابع fx رو فرا خونی می کنی (fx(a,b,&mul فقط به شرط اینکه توی تابع fx نوشته باشی (return (op)(a,b .

موفق و پیروز باشی