字元指標和整形指標簡單分析,*,&的作用。
你始終記住 * 就是取值的,
例:*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=ⅆ 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