程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++指針總結

c++指針總結

編輯:C++入門知識

什麼叫指針?
指針某一變量或函數的內存地址,是一個無符號整數,它是以系統尋址范圍為取值范圍,32位,4字節。

指針變量:
存放地址的變量,在C++中,指針變量只有有了明確的指向才有意義。

指針類型
int*ptr; //指向int類型的指針變量
char*ptr;
float*ptr;


指針的指針:

char*a[]={"hello","the","world"};
char**p=a;
p++;
cout<<*p<<endl;          //輸出the


函數指針:
指向某一函數的指針,可以通過調用該指針來調用函數。
例子:
int max(int ,int);
int (*f)(int int)=&max;
d=(*f((*f)(a,b),c));


指針數組:
指向某一種類型的一組指針(每個數組變量裡面存放的是地址)
int*ptr[10];


數組指針:
指向某一類型數組的一個指針
int v[2][10]={{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}};
int (*a)[10]=v;//數組指針
cout<<**a<<endl;         //輸出1
cout<<**(a+1)<<endl;     //輸出11
cout<<*(*a+1)<<endl;    //輸出2
cout<<*(a[0]+1)<<endl;  //輸出2
cout<<*(a[1]+1)<<endl;  //輸出12
cout<<a[0]<<endl;     //輸出v[0]首地址
cout<<a[1]<<endl;     //輸出v[1]首地址


int*p與(int*)p的區別
int*p:p指向整形的指針變量
(int*)p:將p類型強制轉換為整形的指針

 

數組名相當於指針,&數組名相當於雙指針
int a[]={{1,2,3,4,5};
int*ptr=(int*)(&a+1);//二維數組,整體加一行
printf("%d%d",*(a+1),*(ptr-1));//輸出25


char*str="helloworld"與char str[]="helloworld"的區別
char*str="helloworld":分配全局數組,共享存儲區
char str[]="helloworld":分配局部數組


 
作者“我的IT世界”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved