|
31 | 31 | - **چیست؟** مقدار متغیر دادهایه که در آن ذخیره میشه. این مقدار میتونه ثابت یا متغیر باشه.
|
32 | 32 | - **مورد استفاده:** در زمان اجرا (Runtime) که ممکن است تغییر کند.
|
33 | 33 | - **مثال:** وقتی مینویسیم
|
| 34 | + |
| 35 | +<div dir="ltr"> |
| 36 | + |
34 | 37 | ```c
|
35 | 38 | int x = 5;
|
36 | 39 | ```
|
| 40 | +</div> |
| 41 | + |
37 | 42 | در اینجا 5 مقدار اولیه متغیر `x` است.
|
38 | 43 |
|
39 | 44 | 4. **آدرس (Address):**
|
40 | 45 | - **چیست؟** آدرس مکان متغیر در حافظه است. این آدرس به CPU کمک میکند تا دادهها را پیدا کند.
|
41 | 46 | - **مورد استفاده:** در زمان اجرا (Runtime) به سیستم این امکان را میدهد که به دادهها دسترسی داشته باشد.
|
42 | 47 | - **مثال:**
|
| 48 | +<div dir="ltr"> |
| 49 | + |
43 | 50 | ```c
|
44 | 51 | int *ptr = &x; // آدرس متغیر x
|
45 | 52 | ```
|
| 53 | +</div> |
46 | 54 |
|
47 | 55 | 5. **سایز (Size):**
|
48 | 56 | - **چیست؟** سایز مشخص میکند که متغیر چقدر فضای حافظه اشغال میکند. سایز متغیر به نوع دادهای که برای آن تعریف شده بستگی دارد.
|
49 | 57 | - **مورد استفاده:** در زمان اجرا (Runtime) برای تخصیص حافظه.
|
50 | 58 | - **مثال:**
|
| 59 | +<div dir="ltr"> |
51 | 60 | ```c
|
52 | 61 | sizeof(int) // معمولاً 4 بایت برمیگردونه
|
53 | 62 | ```
|
| 63 | +</div> |
54 | 64 |
|
55 | 65 | 6. **محدوده (Scope):**
|
56 | 66 | - **چیست؟** محدوده یا Scope تعیین میکند که یک متغیر در کجا قابل دسترسی است.
|
|
77 | 87 | **Data Bus**، یک مجموعهای از سیمهاست که دادهها را بین CPU و حافظه منتقل میکند. هر بایت، 8 بیت داده دارد، بنابراین Data Bus معمولاً 8 سیم دارد.
|
78 | 88 |
|
79 | 89 | ### تصویر حافظه تکبایتی با Data Bus:
|
| 90 | + |
| 91 | +<div dir="ltr"> |
| 92 | + |
80 | 93 | ```
|
81 | 94 | ----+-------+-------+-------+-------+------+-------+-------+------+-------> DataBus (8 wire)
|
82 | 95 | | | | | | | | |
|
|
85 | 98 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
|
86 | 99 | |_________________________________________________________________________|
|
87 | 100 | ```
|
| 101 | +</div> |
88 | 102 |
|
89 | 103 | ### نوشتن داده در حافظه
|
90 | 104 |
|
|
100 | 114 | **Control Bus** مسئول ارسال سیگنالهای کنترلی است که مشخص میکند عملیات باید **خواندن** (Read) باشد یا **نوشتن** (Write).
|
101 | 115 |
|
102 | 116 | ### تصویر با Control Bus:
|
| 117 | + |
| 118 | +<div dir="ltr"> |
| 119 | + |
103 | 120 | ```
|
104 | 121 | ----+-------+-------+-------+-------+------+-------+-------+------+-------> DataBus (8 wire)
|
105 | 122 | | | | | | | | |
|
|
108 | 125 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
|
109 | 126 | |_________________________________________________________________________|
|
110 | 127 | ```
|
| 128 | +</div> |
111 | 129 |
|
112 | 130 | ### خواندن داده از حافظه
|
113 | 131 |
|
|
124 | 142 | **Address Bus** مجموعهای از سیمهاست که آدرس خونهی حافظهای که CPU میخواهد با آن کار کند را مشخص میکند.
|
125 | 143 |
|
126 | 144 | ### تصویر حافظه چندبایتی با Address Bus:
|
| 145 | + |
| 146 | +<div dir="ltr"> |
| 147 | + |
127 | 148 | ```
|
128 | 149 | ----+-------+-------+-------+-------+------+-------+-------+------+-------> DataBus (8 wire)
|
129 | 150 | | | | | | | | |
|
|
141 | 162 | | +-------+-------+-------+-------+-------+-------+-------+-------+ |
|
142 | 163 | |___________________________________________________________________________|
|
143 | 164 | ```
|
| 165 | +</div> |
144 | 166 |
|
145 | 167 | ### نوشتن داده در بایت مشخص
|
146 | 168 |
|
|
155 | 177 | تا اینجا متوجه شدیم که سیستم باس چطور به CPU این امکان را میدهد که با حافظه ارتباط برقرار کند. با درک درست این مفاهیم، حالا میتوانیم به بررسی **پوینترها** بپردازیم و ببینیم که چگونه میتوانیم به آدرسهای حافظه دسترسی پیدا کنیم و دادهها را مدیریت کنیم. در بخشهای بعدی، به انواع مختلف پوینترها، کاربردهای آنها و مثالهای عملی میپردازیم.
|
156 | 178 |
|
157 | 179 |
|
| 180 | +## این مقاله در حال بروزرسانی میباشد... |
| 181 | + |
| 182 | + |
158 | 183 | ## آرایهها
|
159 | 184 |
|
160 | 185 | | شماره | سوال | بارمبندی |
|
|
0 commit comments