- 指針:指針是一種數據類型,變量在內存中所對應單元的地址。即指針=地址;
- 每種指針應該指向同類型的數據的地址;
- 指針變量:指針變量是一個存放其他類型數據地址的變量,指針變量的值爲地址;
- 定義指針變量:
類型名*指針變量名 如:int *p float *p char *p …
可以在定義指針變量的同時對它初始化,如:int *p=&a ,指針變量定義及初始化代碼如下:
int main()
{
int a = 10;
int b =20;
int *p = &a; //整型地址變量保存整型地址值
*p = 100; //對指針變量進行解引用,a=100
p = &b; //將b的地址賦值給指針變量p
*p = 200; //b=200
int **pp = &p;
*pp = &a;
**pp = 1000; //a=1000
*pp = &b;
**pp = 2000; //b=2000
return 0;
}
在定義指針變量時要注意:
①指針產量前面的“*”表示該變量的類型爲指針型變量;②在定義指針變量時必須指定基類型。
而在指針使用的過程中,要對指針進行解引用。
指針的大小: x86或者32位平臺,指針4字節; x64或者64位平臺,指針8字節
使用sizeof計算各類型指針的大小,代碼如下:
int main()
{
printf("%d\n",sizeof(char*));
printf("%d\n",sizeof(short*));
printf("%d\n",sizeof(int*));
printf("%d\n",sizeof(long*));
printf("%d\n",sizeof(long long*));
printf("%d\n",sizeof(float*));
printf("%d\n",sizeof(double*));
printf("%d\n",sizeof(double**));
printf("%d\n",sizeof(double**********));
return 0;
}