指针是什么
一个小的内存单元到底是多大?(一个字节)
指针在32位平台是4个字节 在64位平台是8个字节
指针和指针类型
int main()
{
int* pa;
char* pb;
float* pc;
printf("%d\n", sizeof(pa));
printf("%d\n", sizeof(pb));
printf("%d\n", sizeof(pc));//输出结果一样
return 0;
}
指针类型的意义
1. 指针类型决定了 指针解引用的权限有多大 如下:
int main()
{
//指针类型的意义。既然指针类型大小都一样为什么我们不自己创造一个指针呢
//这是个十六进制数 一个十六进制为表示4个二进制位
//0 1 2 3 4 5 6 7 8 9 a b c d e f f是最大16进制数
//f需要几个二进制数表示
//11111111
// 8421 等于15 刚好是f 所以4个二进制位表示一个16进制位
int a = 0x11223344;
//int是32个bit位(4个字节),一个数占4个bit位,2个数就是一个字节
int* pa = &a;
*pa = 0; //整形指针解引用访问4个 44 33 22 11全变成0
char* pc = &a;
*pa = 0;//字符指针解引用访问1个字节00 33 22 11 只有第一个变成0
return 0;
}
2.指针类型决定了 指针走一步能走多远 double+1 是+8
int main()
{
int arr[10] = { 0 };
int* p = arr;
char* pc = arr;
printf("%p\n", p);
printf("%p\n", p+1);//加1就是加4
printf("%p\n", pc);
printf("%p\n", pc+1);//加一是加1
}
举例
循环一次就变1
char执行两次