PDA

View Full Version : تفاوت این دو خط چیه؟



fshb_ 1370
دوشنبه 26 بهمن 1388, 11:04 صبح
سلام
تفاوت این دو خط کد چیه؟ هر دو تا مکان متغیر a رو چاپ میکنن، ولی چرا به دو نوع متفاوت مینویسیم؟ این دو تا با هم فرقی ندارن؟

cout << "\n\nShowing that * and & are inverses of "
<< "each other.\n&*aPtr = " << &*aPtr
<< "\n*&aPtr = " << *&aPtr << endl;

Salar Ashgi
دوشنبه 26 بهمن 1388, 13:05 عصر
دوست عزیز به کد زیر توجه کنید :




#include <iostream>
#include <conio>
int main(){
int a = 6;
int *p = &a;
cout<<p<<endl;
cout<<&a<<endl;
cout<<"=============\n";
cout<<&(*p)<<endl; // = &a
cout<<*(&p)<<endl;
getch();
}


اشاره گر چیزی نیست جز متغیری که همیشه حاوی آدرس است .

با توجه به عکس :

مورد اول : خود p (یک آدرس) چاپ میشود .

مورد دوم : آدرس متغیر a (همان خود p ) چاپ میشود .

مورد سوم : p* یعنی a و بعد (p*)& یعنی a& ، پس آدرس a چاپ میشود .

مورد چهارم : گفتیم اشاره گر یک متغیره ، پس آدرسی تو جافظه داره که مقدار آدرس یک اشاره گر میشه

محتوی خود اشاره گر ، که یک آدرسه .

موفق باشید .