企业网站建设公司上海网页搜题
指针
int a = 10;
创建变量的本质是向内存申请一块空间(书架的格子为空间,书本为内容)
由于 1 个数能表示无数种含义
例:ascll 中 97 表示 ‘a’
97 也表示 97 表示数学意义
所以我们去吃莫个变量的地址(假设为 0x00000001)
0x00000001可以表示为 数字意义的1
也可以表示为 内存空间的代号(地址)0x00000001
为了区分两者的特殊性,统一规定将变量 a 的地址存入一个空间中,这个空间叫做指针变量
其特殊写法为
int a = 10;
int* p = &a;
int * 中的 * 表示p为指针变量,int表示为通过p指向的对象是int类型
下次 *p = 0;就可以将 a更改为0;
这时的 * 表示为解引用操作符(间接访问操作符)
通过p中的地址,找到a,将a的内容更改为0
指针类型
在创建指针时,int 表示其指针类型
指针类型决定通过指针变量中地址找上的空间处理方式
int a = 11223344;
int b = 11223344;int* pa = &a;
*Pa = 0;char* pb = &b;
*pb = 0;
a 和 b 在打印时,a为0,但b不会为0,因为pb指针类型为char,之和更改1个字节的内存空间
当在直接在指针上 + - 整数时,也会根据指针类型分类,int* + - 1 为地址 + - 4个字节,char* + - 1 为地址 + - 1个字节