خوش آمديد!
17:13 سه شنبه 2 خرداد ماه ، 1391
تبلیغات راست
پکیج آموزش جامع دوره مهندسی شبکه مایکروسافت MCSE
خبر خوان

خبر خوان

دسته بندی مقالات
وب
  مقالات HTML
  مقالات PHP
  مقالات ASP.NET
  مقالات CSS
  مقالات XML
  مقالات JavaScript
  مقالات CMS
  مقالات Dreamweaver
  مقالات ColdFusion
  مقالات IIS
  مقالات Apache
  مقالات AJAX
  مقالات Flex
  مقالات AIR
  مقالات Expression Web
  مقالات SEO
  مقالات عمومی وب
برنامه نویسی
  مقالات C / C++
  مقالات C#
  مقالات VB.NET
  مقالات VB6
  مقالات دلفی
  مقالات VbScript
  مقالات اکشن اسکریپت
  مقالات Python
  مقالات سیلور لایت
  مقالات عمومی برنامه نویسی
سخت افزار
  مقالات CPU
  مقالات RAM
  مقالات دیسک سخت
  مقالات MainBoard
  مقالات کیبورد
  مقالات کارت گرافیک
  مقالات چاپگر
  مقالات عمومی سخت افزار
سیستم عامل
  مقالات ویندوز سون
  مقالات ویندوز ویستا
  مقالات ویندوز XP
  مقالات لینوکس
  مقالات سیستم عامل مک
  مقالات عمومی سیستم عامل
گرافیک دو بعدی
  مقالات فتوشاپ
  مقالات Illustrator
  مقالات Corel
  مقالات Painter
  مقالات QuarkXpress
  مقالات InDesign
  مقالات Fireworks
  مقالات Lightroom
  مقالات Bridge
  مقالات آکروبات
  مقالات فلش
  مقالات Expression Medial
  مقالات Expression Blend
  مقالات عمومی گرافیک دو بعدی
گرافیک سه بعدی و انیمیشن سازی
  مقالات تردی مکس
  مقالات مایا
  مقالات اتوکد
  مقالات عمومی گرافیک سه بعدی
میکس و مونتاژ
  مقالات After Effects
  مقالات پرمیر
  مقالات ادیوس
  مقالات SoundBooth
  مقالات Apple Reason
  مقالات Corel Video Studio
  مقالات Audition
  مقالات Pro Tools
  مقالات FLStudio
  مقالات SoundFordge
  مقالات عمومی ویرایش صوت و فیلم
پایگاه داده
  مقالات SQL Server
  مقالات اکسس
  مقالات MySQL
  مقالات اراکل
  مقالات عمومی پایگاه داده
شبکه
  مقالات اکسچنج سرور
  مقالات SharePoint Server
  مقالات ویندوز سرور 2003
  مقالات ویندوز سرور 2008
  مقالات ISA Server
  مقالات VMware
  مقالات MS Virtualization
  مقالات MCSE
  مقالات MCITP
  مقالات CCNA
  مقالات CCNP
  مقالات CCIE
  مقالات مایکروسافت System Center
  مقالات Wireless
  مقالات Wi-Fi
  مقالات WiMax
  مقالات Citrix
  مقالات DSL
  مقالات BizTalk
  مقالات Commerce Server
  مقالات Forefront
  مقالات Groove
  مقالات Communication Server
  مقالات Project Server
  مقالات Storage Server
  مقالات امنیت شبکه
  مقالات VoIP
  مقالات عمومی شبکه
آفیس و برنامه های تجاری
  مقالات Word
  مقالات Excel
  مقالات Access
  مقالات PowerPoint
  مقالات Visio
  مقالات OneNote
  مقالات Publisher
  مقالات Outlook
  مقالات Amalga
  مقالات Dynamics AX
  مقالات Dynamics CRM
  مقالات Dynamics GP
  مقالات Dynamics NAV
  مقالات Dynamics POS
  مقالات Dynamics RMS
  مقالات Dynamics SL
  مقالات عمومی آفیس و برنامه های تجاری

کلاس های حافظه در ++C

کلاس های حافظه در ++C

زبان برنامه‌نویسی ++C از چهار کلاس حافظه مختلف برای تعریف متغیرها پشتیبانی می‌کند.

کلاس حافظه اتوماتیک (auto):

این کلاس اصلی‌ترین کلاس حافظه زبان ++C محسوب می‌شود. متغیرهایی که توسط این کلاس تعریف می‌شوند، با خروج از محدوده تعریف به طور خودکار از بین می‌روند. بنابراین تمامی متغیرهای عادی از این نوع کلاس هستند. یعنی شما برای مشخص کردن کلاس حافظه اتوماتیک نیاز به انجام کار خاصی ندارید. اما برای تاکید بر اتوماتیک بودن کلاس حافظه، می‌توانید از کلمه کلیدی auto استفاده کنید. به عنوان نمونه، دو عبارت زیر هم ارز هستند:

int n;

auto int n;



کلاس حافظه اتوماتیک (auto):

این کلاس اصلی‌ترین کلاس حافظه زبان ++C محسوب می‌شود. متغیرهایی که توسط این کلاس تعریف می‌شوند، با خروج از محدوده تعریف به طور خودکار از بین می‌روند. بنابراین تمامی متغیرهای عادی از این نوع کلاس هستند. یعنی شما برای مشخص کردن کلاس حافظه اتوماتیک نیاز به انجام کار خاصی ندارید. اما برای تاکید بر اتوماتیک بودن کلاس حافظه، می‌توانید از کلمه کلیدی auto استفاده کنید. به عنوان نمونه، دو عبارت زیر هم ارز هستند:

int n;

auto int n;

کلاس حافظه استاتیک (static):

متغیرهای کلاس حافظه استاتیک تا اتمام برنامه حافظه اختصاصی خودشان را حفظ می‌کنند؛ حتی اگر کنترل برنامه به خارج ناحیه تعریف آنها منتقل شود. مثال زیر را در نظر بگیرید:

#include< iostream.h >

void func( )

{

static int y = 1;

cout << y << "t";

y *= 2;

}

void main( )

{

func( );

func( );

func( );

}

خروجی برنامه:

1 2 4

در اولین فراخوانی تابع func، برای متغیر y حافظه اختصاص داده می‌شود. خط آخر تابع مقدار 2 را در y قرار می‌دهد. اما با خروج از تابع متغیر از بین نمی‌رود. بار بعد که تابع فراخوانی شد، مقداردهی اولیه y (یعنی 1) در نظر گرفته نمی‌شود. در نتیجه عدد 2 چاپ می‌شود و الی آخر. حافظه اختصاصی برای y فقط زمانی آزاد خواهد شد که اجرای برنامه تمام شود.

توجه: استفاده از دستور جداگانه برای مقداردهی اولیه متغیر استاتیک خطای منطقی محسوب می‌شود:

#include < iostream.h >

void func( )

{

static int y;

y = 1;

cout << y << "t";

y *= 2;

}

void main( )

{

func( );

func( );

func( );

}

خروجی برنامه:

1 1 1

کلاس حافظه ثبات (register):

زمانی که متغیری از نوع کلاس حافظه ثبات تعریف شود، حافظه برای متغیر به جای حافظه اصلی (RAM) از حافظه پردازنده مرکزی (CPU) اختصاص داده می‌شود. در نتیجه سرعت خواندن و نوشتن متغیر بالا می‌رود. از این نوع متغیرها عموما برای شمارنده حلقه‌ها استفاده می‌شود، تا سرعت اجرای حلقه بالاتر رود.

‌void main( )

{

register int i;

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

{

cout << i * i << "t";

}

}

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

کلاس حافظه خارجی (extern):

پروژه‌های بزرگ همیشه از چندین فایل تشکیل می‌شوند. برای دسترسی به متغیری از فایل دیگر باید از کلاس حافظه خارجی استفاده کنید. به عنوان مثال:

file1:

int n;

file2:

extern int n;

cout << n;

توجه:

1 - کلاس حافظه خارجی برای متغیرهای عمومی استفاده می‌شود.

2 - دو فایلی که با هم تبادل متغیر می‌کنند باید از یک پروژه باشند.



ارسال شده در مورخه : دوشنبه، 3 مرداد ماه ، 1390   چاپ مطلب

آموزش SharePoint


مرتبط با موضوع :

 آموزش c++(ساختار های کنترلی - حلقه while)  [پنجشنبه، 1 دي ماه ، 1390]
 آموزش c++(ساختار های کنترلی)  [پنجشنبه، 1 دي ماه ، 1390]
 آموزش c++(نحوه تغییر متغییرها)  [پنجشنبه، 1 دي ماه ، 1390]
 آموزش C++ (تعریف و معرفی متغییرها)  [پنجشنبه، 1 دي ماه ، 1390]
 نوشتن اولین برنامه با ++C  [سه شنبه، 4 مرداد ماه ، 1390]
 تفاوت برنامه نویسی MFC و WIN32 در ویژوال سی  [دوشنبه، 23 خرداد ماه ، 1390]
 سی ++  [سه شنبه، 6 ارديبهشت ماه ، 1390]
 ۲۰۱۱ ++C روانه بازار می شود  [يكشنبه، 21 فروردين ماه ، 1390]
 زبان برنامه نویسی سی (C)  [سه شنبه، 25 خرداد ماه ، 1389]
 آموزش C (بخش 6) :: تابع ()Printf  [دوشنبه، 19 بهمن ماه ، 1388]


تبلیغات چپ
پکیج Windows Server 2008 MCITP Enterprise Administ
آخرین مقالات
· ۱۴ تغییراتی احتمالی که در iPhone 5 خواهید دید!
· روشهایی برای افزایش عمر باتری موبایل
· p1000 پرفروش ترین تبلت سامسونگ
· خالی کردن فضای هارد دیسک
· ۷ دلیل برای خرید مطمئن سامسونگ Galaxy Note
· معرفی لایف بوک ها ویژگی های مربوط به آنها
· معرفی ۱۰ فناوری برتر ماه گذشته در عرصه آی تی
· معرفی دلایلی برای خرید گوشی با قابلیت ویندوز فون
· SCX-4729FD چاپگر چندکاره سامسونگ
· تعریف سیستم عامل اندروید و مهمترین ویژگی های آن
· لپ تاپ های Samsung Series 7 Game 3D
· پرطرفدارترین موبایل های هوشمند تا بهار ۲۰۱۲
· Sony Unveila Xperia Sola و صفحه نمایش شناور
· کنترل دستگاه اندرویدی توسط دسکتاپ
· 10 تبلت برتر بهار سال 2012
· Optimus 3D Max دومین گوشی سه بعدی ال جی به عنوان محصولی بی همتا
· G6-1160EE لپ تاپ باقابلیت و پرمخاطب HP
· راه های افزایش امنیت در اینترنت
· آموزش مراحل پاک کردن آرشیو یاهو مسنجر
· مانیتورهایی مخصوص بازی های ویدئویی و گیمرها
· نکات مهم در مورد سرچ گوگل
· معرفی بهترین تبلت های بازار از نظر کیفیت نمایشگر
· معرفی رایانه ها و تبلت های سازگار با ویندوز ۸
· ویژگی های Galaxy note 10.1 شرکت سامسونگ
· مهمترین دلایل خرابی سریع لپ تاپ ها

[ موارد بیشتر در بخش اخبار و تازه ها ]
پربیننده ترین مقالات
· استاندارد های ISO/IEC 17799 و BS7799-2
· توصیه های مهم امنیتی در مورد لینوکس و یونیکس
· گرما در cpuها
· معماری client/Server در اینترنت
· آشنایی با سیستم فایل GNU/Linux
· یک MAC BOOK PRO جدید در بازار ایران
· معرفی دو مدل لپ تاپ با قابلیت سونی سری F
· F137HG/B، لپ تاپ سایز بزرگ سونی در بازار داخلی
· اندر احوالات کرک و کپی رایت
· EE31FX/BJ، لپ تاپ ارزان قیمت سونی در بازار داخلی
· معرفی z216 FX/L از لپ تاپ های سونی
· مدل MD313LL/A ، Macbook ارزان قیمت در بازار داخل
· تاریخچه کامپیوتر
· مشاهده آنلاین سوابق بیمه شدگان
· چگونگی اختصاص دادن یک آدرس IP استاتیک به یک رایانه در شبکه در ویندوز Xp ، Vista یا Seven
· آشنایی با روتر و سوئیچ(router and switch)
· الگوریتم های مرتب سازی آرایه ها
· تاریخچه ی پیدایش زبان های برنامه نویسی شی گرا
· GPS چیست؟
· به روز رسانی ویندوز 7 با نرم افزار Windows Update
· پایگاه داده های سیار Mobile database
· بازیابی رمز عبور در ویندوز 7
· معماری سرویس گرا Service Oriented Architecture چیست؟
· انتقال اطلاعات با Replication در SQL Server
· آموزش نرم افزار Virtual Box

[ موارد بیشتر در بخش اخبار و تازه ها ]
مقالات تصادفی
· مدیر جدید گوگل مشغول به کار شد
· برنامه های ویندوزفون ۷: بازی Super Monkey Ball
· گوشی سامسونگ نسل چهارم، Samsung Infuse 4G
· راه و روش افزایش بازدهی باتری تلفن همراه (قسمت اول)
· تبلیغات هوشمند، شما را هدف می گیرند
· مشکلات iphone 4
· سیستم عامل گوگل کروم
· web 0.2 چیست؟
· دولت بزرگترین رقیب بخش خصوصی
· آموزش ساخت بافت کاغذی واقعی در عرض ۵ دقیقه
· مدیریت امور فناوری اطلاعات و ارتباطات
· 5 دلیل برای خرید دوربین DSLR
· معرفی چند کد مخفی گوشی های نوکیا
· آيا مطمئنيد كه كامپيوتر شما Spyware ندارد؟
· درباره هارد دیسک بیشتر بدانیم
· لینک کردن پروفایل ها در ویندوز فون ۷
· صوت روی WLAN
· راه نفوذ به ويندوز xp
· دراپ باکس: در صورت لزوم فایل های تان در اختیار دولت قرار می گیرد
· افزودن گزینه Open With به فایل های خاص
· خرید دیگری برای مایکروسافت ، آیا نوکیا خریداری خواهد شد؟
· پنج اصطلاح هوشمند!
· تاثیر اینترنت بر فضای دانشگاهی (2)
· آشنایی با رجیستری ویندوز ( بخش دوم )
· G74SX، لپ تاپ جدید سری بازی ایسوس با ۱۲ گیگ رم

[ موارد بیشتر در بخش اخبار و تازه ها ]
امتیاز دهی به مطلب
امتیاز متوسط : 0
تعداد آراء: 0

لطفا رای مورد نظرتان را در مورد این مطلب ارائه نمائید :

عالی
خیلی خوب
خوب
متوسط
بد

آموزش مجازی سازی با VMWare