1. 程式人生 > >字元指標和整形指標簡單分析,*,&的作用。

字元指標和整形指標簡單分析,*,&的作用。

你始終記住 * 就是取值的,

例:*p,你看看p中存的是什麼是地址的話就是去這個地址中存的內容,如不是抵制就返回0;

程式碼如下:

    string ww="zhj";     string * dizhi=&ww;//存的地址     cout <<dizhi<<endl;//取出地址     cout <<*dizhi<<endl;//取出地址的內容

&就是取出儲存內容的地址,程式碼如下:

    int w=123;     int *e=&w;//指標有自己的地址:是地址,有自己的內容:是w的地址。&取地址,*取內容     cout <<e<<endl;     cout <<*e<<endl;

例1:

主要講解:char,string型別,與整形,int ,float ,double指標型別之間的區別;

字串型的指標可以直接進行賦值,整形的指標只能是賦值為地址。

int main() {    

    char ss[] = "0123";     char *aa;     aa ="0123";  //字串型別的直接進行賦值,但是整形的不可以,只能賦值是地址。     cout <<*(aa+2)<<endl;//輸出2,如果是*aa,輸出是0,也就是“0123”的第一位。

    cout <<aa<<endl;//輸出0123,輸出全部     cout <<&ss<<endl;     return 0; }

char,string型別使用:

    string ww="zhj";     string * w=&ww;     cout <<w<<endl;

整形使用:

    int aa=12;     int * a;     a=&aa;     cout << *a<<endl;

char ss[] = "12312";          int *str;      str=ss;     cout <<*str<<endl;     string ww="zhj";     string * w=&ww;     cout <<w<<endl;          int aa=12;     int * a;     a=&aa;     cout << *a<<endl;          double dd=123;     double * d=&dd;     cout <<*d<<endl;          float ff=12322;     float *f=&ff;     cout <<f;     

例2:

int main()      {      char *a="ad1";       cout <<  a<<endl;     cout <<  *a<<endl;     cout <<  *(a+1)<<endl;     cout <<  *(a+2)<<endl;     //int *b=128;這種用法不對,這相當於把b指向的地址設為128            return 0; } 輸出的結果是:

ad1
a
d
1