指针
https://www.bilibili.com/video/BV1MJ411D7EX?from=search&seid=10400155575475579131
内存中的每个地址对应一个字节,每个字节分配一个32位或者64位的地址编号
char占一个字节
int占四个字节
1字节(byte)=8位(bit)
当占用多个字节时,第一个字节的编号为该类型变量的地址编号
取地址:
int num=6; printf("%p\n", &num);
指针变量:
定义一个变量,存放每个地址的编号,这个变量叫做指针变量
int num = 6; //定义一个int类型 占四个字节 int *p; //定义一个int类型的指针变量 占四个字节 *代表定义的这个变量是指针变量 p = # //将num取地址,赋值给指针变量 printf("num=%d\n",num); //6 printf("*p=%d\n",*p); //6 *代表 取p表示的地址中的内容
任何类型的指针变量都占4给字节
自身的类型:将变量名拖黑,剩下啥类型 指针变量就是啥类型 上面p自身的类型就是int *
指向的类型:将变量名和离它最近的一个*一起拖黑,剩下啥类型 指针变量就是啥类型 上面p指向的类型就是int
作用:决定了指针变量+1跳过的单位跨度
int 4个字节
short 2个字节
char 1个字节
const
const char* p; 声明一个指向字符或字符串常量的指针,p所指向的内容为const类型不可修改
char const *p; 同上
char * const p; 声明一个指向字符或字符串的指针常量,即不可以修改p的值,也就是地址无法修改。
https://www.cnblogs.com/zhangjiansheng/p/7421225.html