指针是一个值为内存地址的变量(或数据对象),简单说指针就是地址。
int main()
{
int a = 10; //创建a变量,在内存中占4个字节
printf("%p\n", &a); //%p是指针的转换说明,指针并不是整数类型
//输出变量a的地址(32位下为8位十六进制数)
return 0;
}
声明指针:
int main()
{
int a = 10;
int* pi = &a;//星号*表明声明的变量是一个指针
//int表明声明pi是指向int类型变量的指针
char ch = 'a';
char* pc = &ch;
return 0;
}
指针的简单应用:
*:间接运算符,也叫解引用运算符
int main()
{
int a = 10;
int* pi = &a; //创建指针变量,存放a的内存地址
*pi = 100; //将100赋给pi中存放的地址所对应的变量,即a
//星号*叫间接运算符,也叫解引用运算符,
printf("%d\n", a);//输出100
return 0;
}
//计算指针变量大小
int main()
{
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(long*));
printf("%d\n", sizeof(long long*));
printf("%d\n", sizeof(float*));
printf("%d\n", sizeof(double*));
//32位下输出全为4,64位下输出全为8
//因为32位下内存地址占4个字节,64位下占8个字节
return 0;
}
|