#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char* pc = NULL;
short* ps = NULL;
int* pi = NULL;
double* pd = NULL;
printf("%zu\n", sizeof(pc));//4
printf("%zu\n", sizeof(ps));//4
printf("%zu\n", sizeof(pi));//4
printf("%zu\n", sizeof(pd));//4
return 0;
}
//本质上指针就是地址
//口语说指针实际上是指针变量,是用来存放地址的变量
//指针类型:
//1.指针类型决定了指针在被解引用的时候访问几个字节
//2.指针类型决定了指针在+-1的时候,跳过几个字节
//如果是int*的指针,解引用访问4个字节,+1跳过4个字节
//如果是char*的指针,解引用访问1个字节,+1跳过1个字节
//野指针:指针指向的位置不可知
//成因:1.指针未初始化;2.指针越界访问;3.指针指向的空间释放
//空指针:不指向任何有效的内存地址
//int main()
//{
// int a = 0;
// int* pi = &a;//pi解引用访问4个字节,pi+1跳过4个字节
// float* pf = &a;//pf解引用访问4个字节,pf+1也跳过4个字节,但是int*和float*不能通用
// int* p;
// *p = 1;//野指针
// return 0;
//}